Fast.ai learn.export() 停止工作,没有明显的代码更改

Fast.ai learn.export() stopped working with no apparent code change

我一直在 colab 上训练和导出多个版本的模型。我的出口代码一直是这样的:

model.export('model.pkl')

我已经能够重新加载模型并做出预测以确认一切正常,如下所示:

x = load_learner('', 'model.pkl')
x.predict()

突然之间,导出代码的行为发生了变化。我仍然能够导出 load_learner 而在 colab 上没有问题,但是当我将模型文件从 colab 下载到我的本地计算机并尝试在本地 运行 时,我收到此错误:

Traceback (most recent call last):
  File "process.py", line 127, in <module>
    predict_utterances_in_transcript(i, path_to_processed_and_predicted_transcript_dir, audio_id)
  File "process.py", line 94, in predict_utterances_in_transcript
    predict()
  File "/Users/src/predict.py", line 9, in predict_utterances
    model = load_learner('', 'models/model.pkl')
  File "/Users//anaconda3/envs/nlp/lib/python3.6/site-packages/fastai/basic_train.py", line 621, in load_learner
    state = torch.load(source, map_location='cpu') if defaults.device == torch.device('cpu') else torch.load(source)
  File "/Users//anaconda3/envs/nlp/lib/python3.6/site-packages/torch/serialization.py", line 586, in load
    with _open_zipfile_reader(f) as opened_zipfile:
  File "/Users//anaconda3/envs/nlp/lib/python3.6/site-packages/torch/serialization.py", line 246, in __init__
    super(_open_zipfile_reader, self).__init__(torch._C.PyTorchFileReader(name_or_buffer))
AttributeError: 'PosixPath' object has no attribute 'tell'

此外,到目前为止,我一直能够在文本编辑器中打开和阅读模型 pickle 文件。无法读取损坏的模型文件,因为错误提示它们已损坏。

我的代码或我的环境没有任何变化。有什么想法吗?

我遇到了完全相同的问题。从火炬 1.5 转移到火炬 1.6 为我解决了这个问题。在那之后,下载的 pkl 文件就像一个魅力。 安装后,在 python 控制台中,导入 torch 并检查 torch 版本。它应该 return: '1.6.0'

此致, 斯蒂芬