Pytorch测试神经网络时出现 RuntimeError:的解决方案

编辑: admin 分类: python 发布时间: 2021-12-24 来源:互联网

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():

以上为个人经验,希望能给大家一个参考,也希望大家多多支持hwidc。