PyTorchで乱数のTensor配列を生成する以下3つの関数について説明する。
- torch.rand – PyTorch v2.2 Docs 一様分布から0.0以上、1.0以下の配列生成
- torch.randn – PyTorch v2.2 Docs 正規分布(平均0、分散1)から配列を生成
- torch.normal – PyTorch v2.2 Docs 正規分布(任意の平均、任意の分散)から配列を生成
他の乱数の配列の生成については、以下記事を参照。
torch.randの使い方
torch.randは、一様分布から0~1の乱数が生成される。配列のサイズを指定すると、乱数の配列が返ってくる。二次元以上の配列にする場合は、リスト/タプルで指定する。
import torch
print(torch.rand(4))
# tensor([0.0918, 0.5290, 0.0390, 0.8799])
print(torch.rand(2, 4))
# tensor([[0.9240, 0.2265, 0.9199, 0.0929],
# [0.9576, 0.2265, 0.7720, 0.3192]])
torch.randnの使い方
torch.randnは、平均0、分散1の正規分布から乱数が生成される。torch.randと同様に配列のサイズを指定すると、乱数の配列が返ってくる。二次元以上の配列にする場合は、リスト/タプルで指定する。
print(torch.randn(4))
# tensor([-1.1683, -1.3414, 0.3908, -0.4583])
print(torch.randn(2, 4))
# tensor([[ 1.1569, 0.0584, -1.0093, 1.5621],
# [ 1.6141, -0.7164, 0.7459, 0.3595]])
torch.normalの使い方
torch.normalは、任意の平均と分散の正規分布から乱数が生成される。第一引数meanに平均、第二引数stdに標準偏差、第三引数sizeに出力されるTensor配列の形状を指定する。
print(torch.normal(mean=2, std=3, size=(1, 4)))
# tensor([[2.2946, 1.9791, 1.2280, 0.3976]])
print(torch.normal(mean=0, std=1, size=(2, 4)))
# tensor([[ 0.1522, -0.2201, -0.5715, -0.2014],
# [-0.5335, 1.5139, 0.1486, 1.3389]])
コメント