【转载】 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上使用时带来的随机性没法儿避免。

https://pytorch.org/docs/stable/notes/randomness.html

 

 

=====================================================

 

posted on 2021-04-23 12:14  Angry_Panda  阅读(103)  评论(0编辑  收藏  举报

导航