torch.randn()参数size与输出张量形状详解

torch.randn()参数size与输出张量形状详解

torch.randn(*size, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor

Returns a tensor filled with random numbers from a normal distribution with mean 0 and variance 1 (also called the standard normal distribution). out_i ∼ N(0,1), The shape of the tensor is defined by the variable argument size.

Parameters
size (int…) – a sequence of integers defining the shape of the output tensor. Can be a variable number of arguments or a collection like a list or tuple.

查看torch.randn()官方文档介绍,实际上torch.randn()返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。

好像并没有说清楚,参数size怎么作用的,这里给大家演示一下,注意size输入为一系列的正整数:
当size是1个数时,返回一个长度为4的正态分布张量

torch.randn(4)
tensor([ 1.3186, -0.8001, -0.2989,  0.6381])

当size是2个数时,返回一个2行3列的张量,最小元素的每一行服从正态分布

torch.randn(2, 3)
tensor([[ 1.3435, -1.2493, -0.8758],
        [ 1.1435, -1.5320, -0.9512]])

当size是3个数时,返回一个2行1列的张量,其中每个元素又是一个3行4列的张量,最小元素的每一行服从正态分布

torch.randn(2, 3, 4)
tensor([[[-2.0315,  0.1029,  0.4129, -0.3980],
         [-0.5129, -0.4984, -0.5934,  0.6140],
         [-0.0393, -2.1767,  0.1968, -0.5267]],

        [[ 0.7545, -0.1527, -1.5746, -0.8272],
         [ 0.6985, -1.1397, -1.2289, -0.3513],
         [-1.1178,  0.1474, -0.7278, -1.1510]]])

当size是4个数时,返回一个2行3列的张量,其中每个元素又是一个4行2列的张量,最小元素的每一行服从正态分布

torch.randn(2, 3, 4, 2)
tensor([[[[ 3.9611e-01,  1.0144e-01],
          [ 1.9349e+00, -1.2640e+00],
          [ 1.4645e+00,  8.3730e-01],
          [-1.3819e+00,  1.4743e+00]],

         [[ 9.6525e-01,  5.6580e-01],
          [-1.1867e+00, -8.8815e-01],
          [-1.0240e+00,  1.7835e+00],
          [ 1.4675e+00,  1.0380e-03]],

         [[-7.6963e-01,  7.4316e-01],
          [ 8.5112e-01,  1.8237e+00],
          [ 8.0043e-01,  1.8327e+00],
          [-2.1753e-01, -8.7711e-02]]],


        [[[ 1.5652e+00,  2.3123e-01],
          [-5.3719e-01,  1.4747e+00],
          [-1.1808e+00,  5.1531e-02],
          [-4.3431e-01,  1.3920e-02]],

         [[-1.1366e-01,  3.9695e-01],
          [-4.2535e-02,  1.0583e+00],
          [ 1.2490e-01,  2.8763e-01],
          [ 1.7470e+00, -5.3276e-01]],

         [[-1.4223e+00,  1.4635e+00],
          [-1.8354e+00,  7.7747e-01],
          [-6.5236e-01, -9.7374e-01],
          [-3.3809e-01, -7.6553e-01]]]])

当size是5个数时,返回一个2行1列的张量,其中每个元素又是一个2行2列的张量,又其中的每一个元素是一个2行3列的张量,最小元素的每一行服从正态分布

torch.randn(2, 2, 2, 2, 3)
tensor([[[[[-6.6070e-01, -1.9625e+00,  6.8532e-01],
           [-2.1039e+00,  7.9951e-01,  1.6203e-01]],

          [[ 4.6921e-01,  2.4813e-01, -2.4625e+00],
           [ 3.5252e-01, -5.5093e-01,  4.9952e-01]]],


         [[[-5.9623e-01,  9.4782e-01, -1.0019e+00],
           [ 7.4276e-01,  1.3005e-01, -5.1987e-02]],

          [[-1.0716e+00, -1.5122e-01,  4.2387e-01],
           [-4.8268e-01,  1.0938e+00, -1.6504e-01]]]],



        [[[[-8.0815e-01,  1.2935e+00, -1.1570e+00],
           [-1.6112e+00, -7.4303e-02,  5.3961e-01]],

          [[-8.0979e-02,  1.7036e+00,  6.7780e-01],
           [-8.9132e-01, -1.3144e+00, -2.6456e-01]]],


         [[[ 1.4088e+00, -7.4264e-01, -5.1429e-01],
           [ 1.9509e+00, -6.5441e-01,  2.0825e-03]],

          [[-9.7385e-01, -3.0170e-01, -4.1639e-01],
           [-1.9800e+00,  4.5140e-02,  9.3495e-01]]]]])

当size是n个数时,m_1,m_2,…,m_n,若n为奇数,则返回一个m_1行1列的张量,其中每个元素是一个m_2行m_3列的张量,…,又其中每个元素是一个m_n-1行m_n列的张量,最小元素的每一行服从正态分布

当size是n个数时,m_1,m_2,…,m_n,若n为偶数,则返回一个m_1行m_2列的张量,其中每个元素是一个m_3行m_4列的张量,…,又其中每个元素是一个m_n-1行m_n列的张量,最小元素的每一行服从正态分布

  • 38
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值