遇到问题:pytorch结果不可重现

pytorch结果不可重现,大概率是随机数种子设置的问题。

  • Pytorch、Python、Numpy中的随机种子没有固定
  • 数据预处理、增强方式采用了概率,若没有设置固定的随机种子,结果可能不同。例如常用数据增强库albumentations就采用了Python的随机产生器
  • 训练数据集被随机打乱了顺序
  • 向上采样和插值函数/类的向后是不确定的(Pytorch的问题

在程序运行前加设置随机数种子就好:

def seed_torch(seed=1029):
    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed) 
    torch.backends.cudnn.benchmark = False
    torch.backends.cudnn.deterministic = True
seed_torch()
posted @ 2021-06-10 16:28  鲍曼小学生  阅读(312)  评论(0编辑  收藏  举报