Pytorch随机数生成和获取详解
pytorch的random模块是支持设置和获取随机种子的,主要的方法为torch.random.manual_seed(),这个方法是用于设置种子的,参数为种子的值,获取种子的方法为torch.random.initial_seed(),返回种子的值。
设置随机种子的注意点有两个:
1.torch.random.manual_seed()设置了随机种子后,随机数会按同一种规则发散生成。
2.torch.random.manual_seed()设置了随机种子,同种初始化函数,在cpu和gpu上初始化的张量可能是不同的,这是由于cpu和gpu的随机数生成逻辑是不同的
import torch
torch.random.manual_seed(100)
data1 = torch.randn(2, 2)
print(data1)
data2 = torch.randint(0, 10, (2, 2))
print(data2)
print(torch.rand(2, 2))
print(torch.random.initial_seed())
torch.random.manual_seed(100)
data3 = torch.randn(2, 2)
print(data3)
data4 = torch.randint(0, 10, (2, 2))
print(data4)
print(torch.rand(2, 2))
print(torch.random.initial_seed())
# tensor([[ 0.3607, -0.2859],
# [-0.3938, 0.2429]])
# tensor([[8, 0],
# [4, 3]])
# tensor([[0.7118, 0.7876],
# [0.4183, 0.9014]])
# 100
# tensor([[ 0.