我尝试从其他人那里加载 pickle 文件。我相信它是由 torch 创建的神经网络模型。该变量仅由 pickle.dump(variable, file, protocol=pickle.HIGHEST_PROTOCOL) 保存。但是,我很难将其加载到本地计算机中。我不想再次重新训练模型,因为它效率不高。谁能帮我加载 pickle 文件?我试图用谷歌搜索它,但没有任何解决方案可以帮助我。

我尝试加载其他人创建的 pickle 文件。我从 GitLab 上的 repo 克隆它。代码很简单:

import pickle

with open('pickle_from_repo.pickle', 'rb') as f:
  var = pickle.load(f)

我得到的错误是:
UnpicklingError: invalid load key, 'v'.

我检查了源代码,变量被存储到pickle中
def dump(self, path):
  with open(path, 'wb') as f:
    pickle.dump(self.classes_, f, protocol=pickle.HIGHEST_PROTOCOL)

有人告诉我这可能是 git lfs 问题,但我不太明白为什么会出现这个问题。

最佳答案

加载pickles的错误是由于缺少完整文件引起的。由于它们的大小,它们存储在 GIT 的特殊部分,必须以特殊方式下载。

使用 LFS 应该可以帮助您解决问题。

https://git-lfs.github.com/

> git lfs install
> git lfs fetch
> git lfs pull

关于python - 由于 "UnpicklingError: invalid load key.",无法从其他 repo 加载 pickle 文件克隆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54893134/

10-13 07:40