Unpickling 错误:magic_number = pickle_module.load(f, **pickle_load_args) _pickle.UnpicklingError: 无效的加载键,'v'

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

当我尝试加载

.pt
文件时,我看到以下错误,

str1='Dataset/ALL_feats_cgqa.pt'
m = torch.load(str1)

错误如下,

  File "/home/Storage1/pythonCodeArea/train.py", line 21, in load_embeddings
    m = torch.load(str1)
  File "/home/.local/lib/python3.10/site-packages/torch/serialization.py", line 1040, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "/home/.local/lib/python3.10/site-packages/torch/serialization.py", line 1262, in _legacy_load
    magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, 'v'.

我不知道这个错误。任何帮助将不胜感激。

我已经浏览了这些参考文献,但没有任何解决方案,[1][2][3][4]

python python-3.x pytorch pickle
1个回答
0
投票

我的猜测是您的

.pt
文件很可能已损坏/损坏。可以按如下方式重现该问题:

import torch
from pathlib import Path

pt_file = Path("~/Downloads/test.pt").expanduser()

pt_file.write_text("v")  # Write nothing but 'v' to .pt file
torch.load(pt_file)  # Raises "UnpicklingError: invalid load key, 'v'."

我的建议是尝试从源再次获取

.pt
文件(重新下载、重新复制等)或备份(如果可能的话),或者尝试重新创建它并查看错误是否仍然存在。

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