1.在验证和测试代码时加入

model.eval()

可以打开验证开关,关闭所有的dropout等。但是在返回到训练时需要再次加入

model.train()

之前的训练中做了这个操作每次的测试结果就会保证一致。后来不知道发生了什么又不能一致了
再加入种子
2.加入seed

torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)  # if you are using multi-GPU.
np.random.seed(seed)  # Numpy module.
random.seed(seed)  # Python random module.
torch.manual_seed(seed)
torch.backends.cudnn.benchmark = False
torch.backends.cudnn.deterministic = True
def _init_fn(worker_id):
    np.random.seed(int(seed)

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐