Pytorch测试神经网络时出现“RuntimeError: Error(s) in loading state_dict for Net”
解决方法:
load_state_dict(torch.load('net.pth')
在前,增加
model = nn.DataParallel(model)
就可以了。
比如
net = NET()
net.cuda()
net = nn.DataParallel(net)
net.load_state_dict(torch.load('net.pth')
补充:解决RuntimeError: Error(s) in loading state_dict for XXXX
在运行代码时遇到了这个错误,显示错误对应代码中的state_dict,找到对应的语句
修改前:
net.load_state_dict(torch.load(model_para_path))
修改后:
net.load_state_dict(torch.load(model_para_path),False)
我遇到的问题得到解决。经查阅资料,我理解的原因是state_dict的四个参数之一:_module 可以用来判断模型当前运行环境与之前是否相同,在默认情况下是True(纯属个人理解,勿喷)
补充:使用Pytorch训练模型出现RuntimeError: CUDA out of memory错误解决
训练:
由于GPU显存资源有限,训练输入的batchsize不能过大,过大会导致out of memory错误。
解决方案:
将batchsize减小,甚至是为1
测试时出现此问题解决方案:
在测试代码之前使用 with torch.no_grad():
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:- linux或windows环境下pytorch的安装与检查验证(解决runtimeerror问题)
- 解决Pytorch 训练与测试时爆显存(out of memory)的问题
- 解决Pytorch 加载训练好的模型 遇到的error问题