torch.rand() 和 torch.randn() 是 PyTorch 中用于生成张量的两个函数,它们之间的主要区别在于生成张量元素的方式不同:
torch.rand() 用于生成元素值在 [0, 1) 之间均匀分布的随机张量。
返回的张量中的每个元素都是从区间 [0, 1) 的均匀分布中随机采样得到的。
示例:
import torch
# 生成一个形状为 (2, 3) 的随机张量,值在 [0, 1) 的均匀分布中随机取样
x = torch.rand(2, 3)
torch.randn() 用于生成元素值服从标准正态分布(均值为0,方差为1)的随机张量。
返回的张量中的每个元素都是从标准正态分布中随机采样得到的。
import torch
# 生成一个形状为 (2, 3) 的随机张量,值服从标准正态分布
x = torch.randn(2, 3)
总的来说,torch.rand() 生成的张量中的元素值来自 [0, 1) 的均匀分布,而 torch.randn() 生成的张量中的元素值来自标准正态分布。因此,你可以根据需要选择合适的随机初始化方法。