错误:AttributeError: Can't get attribute 'BCNN' on <module '__main__' from '
今天在服务器上训练好一个网络,用torch.save(model, 'net.pkl')将模型和参数一并保存了起来,方便在自己电脑上测试。
把保存的模型下载下来进行测试的时候发现报了上述错误。
原来保存下来的模型和参数不能在没有类定义时直接使用。
解决方法:
Pytorch使用Pickle来处理保存/加载模型,这个问题实际上是Pickle的问题,而不是Pytorch。
解决方法也非常简单,只需显式地导入类定义。即将包含类定义的文件复制粘贴到与要运行的文件同一文件夹下,再
import Class!
解决方法来自:
更加详细的解释来自:
pickle在保存信息的时候并不会保存类或对象的构造信息,而在unpickle时,需要访问该类才可以。