DSP

关于pytorch可复现性问题

2019-07-13 19:11发布

参考链接:https://github.com/pytorch/pytorch/issues/7068
深度学习网络结构初始化需要设置随机种子,这个种子的忽略会导致一些结果无法复现。关于这点,上述链接有相关讨论,可以写一个函数来固定所有torch的种子: import random import torch import numpy as np import os def seed_torch(seed=2018): random.seed(seed) os.environ['PYTHONHASHSEED'] = str(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.backends.cudnn.deterministic = True 每次构建模型或者涉及到随机数的函数调用前先执行一次该函数就可以。