当前位置: 代码迷 >> 综合 >> PicklingError: Can‘t pickle <class ‘SAE.AutoEncoder‘>: it‘s not the same object as SAE.AutoEncoder问题
  详细解决方案

PicklingError: Can‘t pickle <class ‘SAE.AutoEncoder‘>: it‘s not the same object as SAE.AutoEncoder问题

热度:93   发布时间:2023-12-23 19:04:02.0

参考链接: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)

这样就解决啦~

  相关解决方案