GPU的使用
在定义模型时,如果没有特定的GPU设置,会使用 torch.nn.DataParallel
将模型并行化,充分利用多GPU的性能,这在加速训练上有显著影响。这段代码设置后,仍然可以复现。
model = torch.nn.DataParallel(model).cuda()
第一种 不使用cudnn 的配置来复现结果:
为了确保实验结果的完全可复现性,通常需要关闭cudnn.benchmark
并设置 cudnn.deterministic
为 True
。具体来说,可以使用以下设置:
cudnn.benchmark = True
应该设置为:
import torch
import torch.backends.cudnn as cudnn
cudnn.benchmark = False
cudnn.deterministic = True
input, target = input.to(args.device), target.to(args.device)
缺点:
加了之后论文不能复现
第二种 使用cudnn的配置来复现结果
os.environ['CUDA_VISIBLE_DEVICES'] = args.gpu
cudnn.benchmark = True
input, target = input.cuda(), target.cuda()