本文共 376 字,大约阅读时间需要 1 分钟。
在神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果,当得到比较好的结果时我们通常希望这个结果是可以复现的,在pytorch中,通过设置随机数种子也可以达到这么目的。
在百度如何设置随机数种子时,搜到的方法通常是:
SEED = 0torch.manual_seed(SEED)torch.cuda.manual_seed(SEED)
自己在按照这种方法尝试后进行两次训练所得到的loss和误差都不同,结果并没有复现。
也搜过一些方法,比如设置参数:
torch.backends.cudnn.deterministic = True
但是在自己的网络中这样设置并没有用,依然得到不同的结果。
后面偶然在google中搜到有人在设置随机数种子时还加上了np.random.seed(SEED),经过尝试后发现结果是可复现的了。
转载地址:http://kmkh.baihongyu.com/