遇到问题: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()
浙公网安备 33010602011771号