Fast.ai learn.export () перестал работать без видимого изменения кода - PullRequest
1 голос
/ 05 августа 2020

Я тренировал и экспортировал несколько версий модели на 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'

Кроме того, я До сих пор могли открывать и читать файлы рассола моделей в текстовом редакторе. Не удается прочитать поврежденные файлы модели, потому что в сообщении об ошибке указано, что они повреждены.

Ничего не изменилось ни в моем коде, ни в моей среде. Есть идеи?

1 Ответ

2 голосов
/ 06 августа 2020

У меня была точно такая же проблема. Переход с torch 1.5 на torch 1.6 решил эту проблему для меня. После этого загруженный файл pkl работал как шарм. После установки в консоли python импортируйте torch и проверьте версию torch. Он должен вернуть: '1.6.0'

С уважением, Стеф

...