RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0

        在加载预训练模型进行训练时,在optimizer.step()行会出现

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 

 保持模型的代码是

torch.save({
                'epoch': epoch + 1,
                'state_dict': model.state_dict(),
                'opt_dict': optimizer.state_dict(),
            }, os.path.join(save_dir, 'models', saveName + '_epoch-' + str(epoch) + '.pth.tar'))

加载模型的代码是

checkpoint = torch.load(os.path.join(save_dir, 'models', saveName + '_epoch-' + str(resume_epoch - 1) + '.pth.tar'),
                       map_location = device)
model.load_state_dict(checkpoint['state_dict'])
optimizer.load_state_dict(checkpoint['opt_dict'])

如果加载 optimizer.load_state_dict(checkpoint['opt_dict'])这行代码就会报上面的错误

解决办法:注释掉这一行解决问题。

你可能感兴趣的:(经验心得,深度学习,深度学习,人工智能)