一.相同点
torch.rand() 和torch.randn() 都是用来生成随机张量的函数。
二.不同点
1.torch.rand() 生成在区间 [0, 1)
内均匀分布的随机数,也可以说生成的张量中的元素符合均匀分布。
参数size:所需张量形状的元组或整数。
import torch
x = torch.rand(2, 3)
print(x)
-------------------------------
tensor([[0.2755, 0.6407, 0.1348],
[0.7009, 0.3745, 0.3707]])
2.torch.randn() 生成从标准正态分布(均值为0,标准差为1)中采样的随机数。也可以说生成的张量中的元素符合标准正态分布。
参数size:所需张量形状的元组或整数。
import torch
x = torch.randn(2, 3)
print(x)
-------------------------------------
tensor([[-0.7634, 0.4938, 2.0363],
[-0.0975, 1.8824, 2.0274]])
三. 注意
由于 torch.randn
生成的是从标准正态分布中采样的随机数,因此它的值可以在负无穷到正无穷之间,而 torch.rand
生成的随机数范围在 [0, 1)
内。
在区间 [0, 1)
内均匀分布的随机数是一种随机数生成方式,其中生成的随机数在区间 [0, 1)
内的任何值都具有相同的概率分布。这意味着在 [0, 1)
内的任何值都有可能被生成,包括所有的实数值。因此,生成的随机数可以是小数,而不仅仅是整数