当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pytorch randn()用法及代码示例


PyTorch Torch.randn()返回由可变参数大小(定义输出张量的形状的整数序列)定义的张量,其中包含标准正态分布的随机数。

用法:torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)

参数:

  • size:定义输出张量大小的整数序列。可以是可变数量的参数,也可以是列表或元组之类的集合。
  • out:(可选)输出张量。
  • dtype:(可选)输出张量的数据类型。
  • layout:(可选)返回的Tensor的所需布局。默认值为torch.strided。
  • device:(可选)返回张量的所需设备。默认值:如果为None,则使用当前设备作为默认张量类型(请参阅torch.set_default_tensor_type())。对于CPU张量类型,设备将是CPU;对于CUDA张量类型,设备将是当前CUDA设备。
  • requires_grad:(可选)如果设置为true,则autograd会记录输出张量上的操作。

Return:张量填充来自标准正态分布的值。

让我们借助几个示例来了解这个概念:



范例1:

Python

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

输出:

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

这将返回一个大小为2×4的张量,其中填充了标准正态分布的值,即均值为0而方差为1。

范例2:

Python3

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

输出:

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.2360,  0.8605],
        [-0.8036, -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, -1.4451],
        [-2.0127,  1.0061,  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.4429,  0.2843, -1.2151,  1.3456, -0.4539],
        [-0.4528,  1.9981, -1.2007,  0.0071, -0.0239],
        [-0.1003,  0.7938, -0.0977, -1.4097,  0.1679]]], requires_grad=True)  

返回一个张量为3×4×5的张量,其中填充有随机数,并且在执行时还记录了梯度值。
范例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)

输出:

TypeError                                 Traceback (most recent call last)
in
     1 # import Pytorch library
     2 import torch
—-> 3 input =  torch.randn(3.0, 4.0, 5.0,requires_grad=True)
     4 print( input )

TypeError:randn() received an invalid combination of arguments - got (float, float, float, requires_grad=bool), but expected one of:
* (tuple of ints size, *, tuple of names names, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)
* (tuple of ints size, *, torch.Generator generator, tuple of names names, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)
* (tuple of ints size, *, torch.Generator generator, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)
* (tuple of ints size, *, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)

size参数不能采用浮点数,因此会产生错误。




相关用法


注:本文由纯净天空筛选整理自danf7861大神的英文原创作品 Python – Pytorch randn() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。