写了两篇论文,做实验时候都遇到了使用torch.load加载模型时的问题,特此记录,欢迎交流。
1.保存整个模型
torch.save(model,'net.pth')
这种保存方式很局限,我在自己电脑上训练时候会使用这种方式(因为懒惰,哈哈哈哈~)
出现的问题:
1.1 显示没有xxmodule
这种很常见,只要你保存模型后发生过以下情况:
1.1.1更改过模型结构
1.1.2导入别的类时这个类更改过或者相对路径放生改变(一定检查路径!!!)
1.2 能运行就是效果非常差
这个问题我搜了两天都没找到方法,后来自己灵光一现解决了!!!
一句话:去检查TestDataset!!!拿我来讲,我训练时候的Test是使用了normalize的,后来觉得没有用就注释了,结果出现这种问题。
2.保存参数
torch.save(model.state_dict(),'net_params.pth')
这种挺好用的,我在服务器上训练使用这种。方便下载下来保存验证。(毕竟服务器太贵了,呜呜)
这种我目前没发生什么问题,但是看了一些帖子提到了。
2.1运行不通
主要是多GPU和单GPU问题,具体大家百度一下~
2.2效果很差
验证前,没写这句话
model.eval()
其他问题,欢迎交流和指正,第一次写CSDN,献给这个奇葩的Bug!!!