无法解封文件 _pickle.UnpicklingError:遇到加载持久 id 指令,但未指定 permanent_load 函数

问题描述 投票:0回答:1

我正在处理生物信息学程序的数据(https://github.com/twopin/CAMP/tree/master/CAMP_pytorch)。

我计划解开软件作者使用的数据/代码来解决我们的工作流程问题。我已经下载了 pickle 文件,解压缩了 pickle 文件,但在尝试加载 pickle 文件时出现以下错误:

如何最好地进行?

import pickle

with open("model_full_ckpts_0.pkl", 'rb') as f:
    loaded = pickle.load(f) 

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
_pickle.UnpicklingError: A load persistent id instruction was encountered,
but no persistent_load function was specified.
python pickle
1个回答
0
投票

您看到的错误发生是因为您尝试加载的pickle文件是使用自定义类或对象创建的,并且该类或对象未在您当前的代码中定义。

这就是我要做的:

识别自定义类: 检查生物信息学程序的文档或代码,了解它在保存数据时是否使用任何特殊的类或对象。

定义自定义类: 如果您发现任何自定义类,请在代码中创建这些类的简单占位符版本。

加载 Pickle 文件: 定义必要的类后,尝试再次加载 pickled 文件。

© www.soinside.com 2019 - 2024. All rights reserved.