文章目录
前言
这几天学习pytorch过程中,碰到一个torch.normal()函数,本来以为很简单,不就是一个生成正态分布的函数吗?但是一看官方文档,整个人都不好了,官方文档里面均值和标准差都能输入的是张量,这和我想的不一样,然后我就看了半天官方文档,然后我就骂人了,写的什么屁东西,一句话都没说清楚。后来我有去博客上搜索别人是怎么解释的,好家伙,清一色的不说人话。至此我觉得我自己有必要写一篇博客记录一下这个函数,避免下次在碰到又是全网找资料,还都是一些不说人话的。
一、torch.normal()参数解释
torch.normal()
函数用于生成服从正态分布(高斯分布)的随机数张量。其语法如下:
torch.normal(mean, std, *, generator=None, out=None)
参数说明:
mean
:表示正态分布的均值。可以是一个标量,也可以是一个张量,如果是张量,其形状必须与std
相容。如果mean
是一个张量,那么函数将生成与mean
相同形状的随机数张量,并以mean
中的值作为各个维度的均值。std
:表示正态分布的标准差。可以是一个标量,也可以是一个张量,如果是张量,其形状必须与mean
相容。如果std
是一个张量,那么函数将生成与std
相同形状的随机数张量,并以std
中的值作为各个维度的标准差。generator
:(可选)用于生成随机数的生成器。如果不指定,将使用默认的生成器。out
:(可选)输出张量,用于保存结果。如果不指定,将会创建一个新的张量来保存结果。
返回值:
- 返回一个张量,其形状与
mean
和std
相同,其中的元素服从均值为mean
,标准差为std
的正态分布。
这是 torch.normal()
函数的基本用法。你可以根据具体需求调整 mean
和 std
的值来生成不同形状、不同均值和标准差的正态分布随机数。
相信看完过后还是不明白在说什么,放心举几个例子你肯定就能明白了。
1 示例一:均值、标准差都输入标量
y = torch.norma