Python: método Pytorch randn()

PyTorch torch.randn() devuelve un tensor definido por el tamaño del argumento variable (secuencia de números enteros que definen la forma del tensor de salida), que contiene números aleatorios de la distribución normal estándar.

Sintaxis: torch.randn(*size, out=Ninguno, dtype=Ninguno, layout=torch.strided , device=Ninguno , require_grad=False)

Parámetros:

  • tamaño: secuencia de enteros que definen el tamaño del tensor de salida. Puede ser un número variable de argumentos o una colección como una lista o tupla.
  • out: (opcional) tensor de salida.
  • dtype: (opcional) tipo de dato del tensor de salida.
  • diseño: (opcional) el diseño deseado del Tensor devuelto. El valor predeterminado es torch.strided.
  • dispositivo: (opcional) el dispositivo deseado del tensor devuelto. Predeterminado: si es Ninguno, usa el dispositivo actual para el tipo de tensor predeterminado (ver torch.set_default_tensor_type() ). El dispositivo será la CPU para los tipos de tensores de CPU y el dispositivo CUDA actual para los tipos de tensores de CUDA.
  • require_grad : (opcional) si se establece en verdadero, autograd registra la operación en el tensor de salida.

Retorno: tensor lleno de valores de la distribución normal estándar.

Veamos este concepto con la ayuda de algunos ejemplos:

Ejemplo 1:

Python

# import pytorch library
import torch
 
# create a tensor of size 2 x 4
input_var = torch.randn(2,4)
 
print (input_var)

 Producción:

tensor([[-1.4313, -0.3831, -0.8356, -1.5555],
        [-1.2749, -1.1872, -0.4983,  0.1029]])

Esto devuelve un tensor de tamaño 2 × 4, lleno de valores de la distribución normal estándar, es decir, la media es 0 y la varianza es 1.

Ejemplo 2:

Python3

# import Pytorch library
import torch
 
# create a 3-dimensional tensor
# of 4 x 5
input_var =  torch.randn(3, 4, 5,
                     requires_grad = True)
print(input_var)

 Producción:

tensor([[[-0.1097, 1.6845, 0.9375, -1.0515, 0.5767], 
        [ 0.1924, -0.7736, -0.7102, -0.2654, 0.3118], 
        [-0.5314, 0.1924, -1.1629, 0.2-60.5] 
        0,3 , -0,0695, -0,6062, 1,4872, 0,5455]],
       [[ 1,5699, -0,7190, 1,0925, 0,8463, -0,1906], 
        [-0,0763, -0,6819, -1,0517, -0,5087, -0,4451], 
        207, 2,01 , 0.5723, -0.1336, -0.3821], 
        [ 0.0868, 1.1556, 0.3842, -0.4168, -1.4604]],
       [[ 0.1368, -1.6240, -0.1875, -0.5964, 0.9352], 
        [ 0.4424, 1,5 2.3, 4,5 -1.8 , -0.4539], 
        [-0.4528, 1.9981, -1.2007, 0.0071, -0.0239], 
        [-0.1003, 0.7938, -0.0977, -1.4097, 0.1679]]], require_grad=True)   
 

Esto devuelve un tensor de tamaño 3 × 4 × 5, lleno de números aleatorios, y también registra los valores de gradiente, cuando se realiza. 
Ejemplo 3: 

Python3

# import Pytorch library
import torch
 
# error occur
input_var =  torch.randn(3.0, 4.0, 5.0,
                     requires_grad = True)
print(input_var)

Producción:

TypeError Traceback (última llamada más reciente) 
en 
     1 # importar biblioteca Pytorch 
     2 import torch 
—-> 3 input = torch.randn(3.0, 4.0, 5.0,requires_grad=True) 
     4 print( input )
TypeError: randn() recibió un mensaje no válido combinación de argumentos: obtuve (float, float, float, require_grad=bool), pero esperaba uno de los siguientes: 
* (tuple of ints size, *, tuple of names , torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool require_grad) 
* (tuple of ints size, *, torch.Generator generator, tuple of names , torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool require_grad) 
* (tupla de tamaño de entradas, *, torch.Generator generador, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool require_grad) 
* (tupla de tamaño de entradas, *, Tensor out, torch.dtype dtype, torch.layout layout, torch.device dispositivo, bool pin_memory, bool require_grad)
 

El parámetro de tamaño no puede tomar números de punto flotante, por lo que se generará el error.

Publicación traducida automáticamente

Artículo escrito por danf7861 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *