pytorch学习之torch.normal()笔记

torch.noraml()

这里只讲一下常用的三个参数

torch.normal(mean, std, out=None) #得到的是一个张量(tensor)

介绍一下三个参数的意思:

mean:输出元素的正态分布均值(默认为float)

std:输出元素正态分布的标准差

out:输出张量的格式(默认1行)

注:meanstd的形状不需要匹配,但每个张量的元素总数需要相同。为什么呢??因为他这个是一一对应的。

# 输入(这是我刚开始学可以理解的)
import torch
torch.normal(2, 3, size=(2, 4))
# 输出如下
tensor([[ 9.6593,  5.6646, -5.6696,  3.8469],
        [ 2.4485,  2.6941,  4.3581,  0.4665]])

原本我以为我搜了资料后我觉得我理解了,结果出现了这个

# 输入(这个还是要把前面张量的学习好好加固一下)
torch.normal(mean=torch.arange(1., 11.), std=torch.arange(1, 0, -0.1))
# 输出(因为是随机数,每个人的结果可能不一样)
tensor([ 2.0341,  1.6641,  3.9183,  3.5596,  4.2670,  5.6417,  7.1381,  7.7588,
         9.2533, 10.0343])

好的,我搜了很久,单个搜normal我都没理解,后面我发现这个mean与std是一一对应的,我才发觉,这是一个一一对应的关系。

例如:

mean生成的是张量:tensor([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])

std生成的是张量:tensor([1.0000, 0.9000, 0.8000, 0.7000, 0.6000, 0.5000, 0.4000, 0.3000, 0.2000, 0.1000])

扫描二维码关注公众号,回复: 15707074 查看本文章

然后一一对应,默认out为一行(列数不定)。产生的第一个数字便是以1(mean产生张量的第一个元素)为正态分布的均值和std为1(std产生张量的第一个元素)的标准差产生的随机数。

猜你喜欢

转载自blog.csdn.net/weixin_51961968/article/details/126968080