遇到问题: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()