RuntimeError:PytorchStreamReader 无法定位文件 data.pkl:找不到文件

U. *_*man 6 python pickle recurrent-neural-network pytorch google-colaboratory

我一直在尝试使用利用 src+img 的模型来训练一些数据。运行训练脚本时,我遇到一个错误,即:RuntimeError: PytorchStreamReader failed locing file data.pkl: file not find

\n

其中的 .pkl 文件应该是 pickled .pt 文件。

\n

首先我想也许我没有正确指定预处理的training.pt文件,但它实际上是正确指定的。

\n

data.pkl 尚未转储到任何地方(或者我找不到它)。我猜它与泡菜有关,根据文档:

\n

“这种保存/加载过程使用最直观的语法,涉及最少的代码。以这种方式保存模型将使用 Python\xe2\x80\x99s pickle 模块保存整个模块。这种方法的缺点是序列化的data 绑定到特定的类以及保存模型时使用的确切目录结构。这样做的原因是因为 pickle 不保存模型类本身。而是保存包含该类的文件的路径,该路径用于在加载时。因此,您的代码在用于其他项目或重构后可能会以各种方式中断。”

\n

我尝试了很多方法,例如更改脚本中的 data.pkl 以查看是否生成了损坏的文件,但情况似乎并非如此。

\n

如果有人愿意提供帮助,我将不胜感激:

\n

完整错误:

\n
  File "train_mm.py", line 448, in <module>\n    main()\n  File "train_mm.py", line 423, in main\n    first_dataset = next(lazily_load_dataset("train"))\n  File "train_mm.py", line 314, in lazily_load_dataset\n    yield lazy_dataset_loader(pt, corpus_type)\n  File "train_mm.py", line 305, in lazy_dataset_loader\n    dataset = torch.load(pt_file)\n  File "/usr/local/lib/python3.7/dist-packages/torch/serialization.py", line 607, in load\n    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)\n  File "/usr/local/lib/python3.7/dist-packages/torch/serialization.py", line 878, in _load\n    data_file = io.BytesIO(zip_file.get_record(pickle_file))\nRuntimeError: PytorchStreamReader failed locating file data.pkl: file not found\n
Run Code Online (Sandbox Code Playgroud)\n

已解决:我重新运行预处理脚本,它生成了新的 .pt 文件,并且错误已解决

\n

U. *_*man 5

此问题已得到解决。.pt 文件严重损坏。删除损坏的 .pt 文件并重新运行预处理脚本和训练脚本后,我不再收到错误。