一、问题描述
在网络下载的代码进行评测,使用自动的模型加载时出现“'xxx object has no attribute 'copy'”
的错误提示。
二、问题解决
- 此问题的产生是保存模型的时候使用
torch.save(mode,"xxxx.pth")
命令,而非torch.save(model.state_dict(),"xxx.pth")
,导致保存的模型并不是一个字典类型。 - 我们可以采取下列步骤先将其保存成字典类型然后再重新加载即可。
pre_weights = torch.load("model.pth") #加载模型
torch.save(pre_weights.state_dict(),"/tmp/1.pth") #将其存成/tmp/1.pth文件
model.load_state_dict(torch.load("/tmp/1.pth")) #再加载该模型文件