【转载】 pytorch reproducibility —— pytorch代码的可复现性
原文地址:
https://www.jianshu.com/p/96767683beb6
作者:kelseyh
来源:简书
=====================================================
在训练seq2seq的过程中,固定了所有seed,
random.seed(args.seed)
os.environ['PYTHONHASHSEED'] =str(args.seed)
np.random.seed(args.seed)
torch.manual_seed(args.seed)
torch.cuda.manual_seed(args.seed)
torch.cuda.manual_seed_all(args.seed)
torch.backends.cudnn.deterministic =True
训练的loss,前100是一模一样的,但是100开始会慢慢出现小数点后几位的不同。
原来是decoder端在使用copy机制的时候用了torch.Tensor.scatter_add_()导致的。
目前这个方法在GPU上使用时带来的随机性没法儿避免。
=====================================================
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2021-04-23 12:14 Angry_Panda 阅读(103) 评论(0) 编辑 收藏 举报