torch.rand
和torch.randn
都是PyTorch中用于生成随机张量的函数,但它们生成随机数的方式有所不同。
一、torch.rand
torch.rand
生成在区间 [0, 1)
内均匀分布的随机数。
size
参数是一个表示所需张量形状的元组或整数。可以生成任何形状的随机张量。
二、torch.randn
torch.randn
生成从标准正态分布(均值为0,标准差为1)中采样的随机数。
size
参数同样是一个表示所需张量形状的元组或整数。
三、代码示例
import torch
random_tensor1 = torch.rand((2, 3))
print(random_tensor1)
random_tensor2 = torch.randn((2, 3))
print(random_tensor2)
tensor([[0.5962, 0.6559, 0.9725],
[0.4057, 0.5187, 0.2943]])
tensor([[ 0.1503, 0.6359, -0.2597],
[-0.3500, -1.1397, 1.9649]])
三、注意
需要注意的是,由于 torch.randn
生成的是从标准正态分布中采样的随机数,因此它的值可以在负无穷到正无穷之间,而 torch.rand
生成的随机数范围在 [0, 1)
内。
四、解释“在区间 [0, 1) 内均匀分布的随机数”
在区间 [0, 1)
内均匀分布的随机数是一种随机数生成方式,其中生成的随机数在区间 [0, 1)
内的任何值都具有相同的概率分布。这意味着在 [0, 1)
内的任何值都有可能被生成,包括所有的实数值。因此,生成的随机数可以是小数,而不仅仅是整数。