参考链接:https://blog.csdn.net/qq_23981335/article/details/103660862
最近在用pytorch做SAE,想要利用网格搜索的方法找到最优解,使用torch.save()保存模型时总是报出:PicklingError: Can't pickle <class 'SAE.AutoEncoder'>: it's not the same object as SAE.AutoEncoder 的错误,查了半天发现可能是我利用for循环运行程序时,多次保存model.pkl文件造成的。查了半天资料终于找到了解决办法,把它记录下来以供大家参考。解决方案如下:
①首先安装dill模块
pip install dill
②将dill模块导入
import dill
③修改模型保存(torch.save())代码
# 原代码
torch.save(model,'model.pkl')
# 修改后代码
torch.save(model,'model.pth',pickle_module = dill)
这样就解决啦~