1. 類似点
torch.rand() と torch.randn() は両方ともランダム テンソルを生成するために使用される関数です。
2. 相違点
1.torch.rand() は、 [0, 1)
の範囲内で均一に分布する乱数を生成します 。生成されたテンソルの要素は一様分布に従うと言えます。
パラメータ サイズ: 希望のテンソル形状のタプルまたは整数。
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) からサンプリングされた乱数を生成します。生成されたテンソルの要素は標準正規分布に準拠しているとも言えます。
パラメータ サイズ: 希望のテンソル形状のタプルまたは整数。
import torch
x = torch.randn(2, 3)
print(x)
-------------------------------------
tensor([[-0.7634, 0.4938, 2.0363],
[-0.0975, 1.8824, 2.0274]])
3. 注意
torch.randn
は標準正規分布からサンプリングされた乱数を生成するため、その値の範囲は負の無限大から正の無限大までの範囲になりますが、 torch.rand
生成される乱数は範囲は [0, 1)
内です。
区間内で一様に分布する乱数 [0, 1)
は、生成される乱数が区間 [0, 1)
内の任意の値になる乱数生成方法です。同じ確率分布です。これは、すべての実数値を含む、 [0, 1)
内の任意の値が生成される可能性があることを意味します。したがって、生成される乱数は整数だけでなく、 小数も可能です。