天天看点

torch.manual_seed 理解

训练一个模型,当我们想下次能够复现模型的结果,那么需要设置torch.manual_seed来设置生成随机数的种子,这样每次运行时产生的随机数是相同的。

1.每次运行,打印结果都相同

import torch
import numpy as np
torch.manual_seed(0)
np.random.seed(0)
print(torch.rand(5))
print(np.random.rand(1))

# 每次运行,打印结果都相同
           
  1. torch.manual_seed设置是保证每次运行.py文件时,每torch.rand个随机函数都能产生与上次相同的随机数,但不是保证每个torch.rand产生的随机数是相同的。如果要每个torch.rand产生相同的,需要在每个torch.rand前再加一句torch.manual_seed,且里面的种子也是相同。
import torch
import numpy as np
torch.manual_seed(0)
np.random.seed(0)
print('----------前一行设置torch.manual_seed(0)---------------')
print(torch.rand(5))
print('----------前一行没有设置torch.manual_seed(0)---------------')
print(torch.rand(5))
print('----------前一行设置torch.manual_seed(0)---------------')
torch.manual_seed(0)
print(torch.rand(5))
           
torch.manual_seed 理解

参考:

https://blog.csdn.net/qq_42951560/article/details/112174334