Python PyTorch 中的 torch.normal() 方法


为了创建一个从具有给定**均值**和**标准差**的不同正态分布中抽取的随机数张量,我们使用**torch.normal()**方法。此方法接受两个输入参数 - **均值**和**标准差**。

  • **均值**是一个张量,包含每个输出元素正态分布的均值,以及

  • **标准差**是一个张量,包含每个输出元素正态分布的标准差。

它返回一个从具有给定**均值**和**标准差**的不同正态分布中抽取的随机数张量。

语法

torch.normal(mean, std)

步骤

我们可以使用以下步骤创建一个从不同正态分布中抽取的随机数张量:

  • 导入所需的库。在以下所有示例中,所需的 Python 库是**torch**。确保您已安装它。

import torch
  • 定义两个 torch 张量 - **均值**和**标准差**。两个张量中的元素数量必须相同。

mean=torch.arange(1., 11.), std=torch.arange(1, 0, -0.1)
  • 计算使用给定的**均值**和**标准差**从不同正态分布中抽取的随机数张量。

tensor = torch.normal(mean, std)
  • 打印计算出的随机数张量。

print("Tensor:
",tensor)

示例 1

# torch.normal(mean, std, *, generator=None, out=None) → Tensor
import torch

# define mean and std
mean=torch.arange(1., 11.)
std=torch.arange(1, 0, -0.1)

# print mean and std
print("Mean:
", mean) print("STD:
", std) # compute the tensor of random numbers tensor = torch.normal(mean, std) # print the computed tensor print("Tensor:
",tensor)

输出

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])
Tensor:
   tensor([ 0.8557, 1.1373, 2.5573, 3.3513, 4.3764, 5.4221, 6.5343, 7.9068,
      8.6984, 10.1292])

请注意,在上面的示例中,**均值**和**标准差**都已给出,并且两个张量上的元素都相同。

示例 2

# torch.normal(mean=0.0, std, *, out=None) → Tensor
import torch
tensor = torch.normal(mean=0.5, std=torch.arange(1., 6.))
print(tensor)

输出

tensor([ 0.4357, 1.1931, 2.8821, -2.3777, -1.8948])

请注意,在上面的示例中,均值在所有抽取的元素中共享。

示例 3

# torch.normal(mean, std=1.0, *, out=None) → Tensor
import torch
tensor = torch.normal(mean=torch.arange(1., 6.))
print(tensor)

输出

tensor([1.3951, 2.0769, 2.4525, 3.6972, 7.7257])

请注意,在上面的示例中,标准差作为参数给出。这里,默认的**标准差**设置为 1。**标准差**在所有抽取的元素中共享。

示例 4

# torch.normal(mean, std, size, *, out=None) → Tensor
import torch
tensor = torch.normal(2, 3, size=(1, 4))
print(tensor)

输出

tensor([1.3951, 2.0769, 2.4525, 3.6972, 7.7257])

请注意,在上面的示例中,均值和标准差在所有抽取的元素中共享。

更新于:2022-01-27

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告