torch.noraml()
这里只讲一下常用的三个参数
torch.normal(mean, std, out=None)
介绍一下三个参数的意思:
mean:输出元素的正态分布均值(默认为float)
std:输出元素正态分布的标准差
out:输出张量的格式(默认1行)
注:mean 和std 的形状不需要匹配,但每个张量的元素总数需要相同。为什么呢??因为他这个是一一对应的。
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])
然后一一对应,默认out为一行(列数不定)。产生的第一个数字便是以1(mean产生张量的第一个元素)为正态分布的均值和std为1(std产生张量的第一个元素)的标准差产生的随机数。
|