Ошибка выполнения: PytorchStreamReader не удалось найти данные файла.pkl: файл не найден

#python #pytorch #google-colaboratory #pickle #recurrent-neural-network

Вопрос:

Я пытался обучить некоторые данные, используя модель, использующую src img. При запуске обучающего сценария я сталкиваюсь с ошибкой, а именно: Ошибка времени выполнения: не удалось найти данные файла PytorchStreamReader.pkl: файл не найден

файл .pkl в этом файле должен был быть маринованным файлом .pt.

Сначала я подумал, что, возможно, я не указал предварительно обработанную training.pt файл правильный, но на самом деле он указан правильно.

data.pkl нигде не был сброшен (или я не смог его найти). Я предполагаю, что это как-то связано с pickle accordimg в документах:

«Этот процесс сохранения/загрузки использует наиболее интуитивно понятный синтаксис и включает в себя наименьшее количество кода. Сохранение модели таким образом позволит сохранить весь модуль, используя модуль pickle Python. Недостатком этого подхода является то, что сериализованные данные привязаны к определенным классам и точной структуре каталогов, используемой при сохранении модели. Причина этого в том, что pickle не сохраняет сам класс модели. Скорее, он сохраняет путь к файлу, содержащему класс, который используется во время загрузки. Из-за этого ваш код может по-разному ломаться при использовании в других проектах или после рефакторинга».

Я перепробовал множество вещей, например, изменил файл data.pkl в скрипте, чтобы узнать, был ли сгенерирован поврежденный файл, но, похоже, это не так.

Я был бы признателен, если бы кто-нибудь захотел помочь:

полная ошибка:

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

решено: я повторно запустил сценарий предварительной обработки, и он сгенерировал новые файлы .pt, и ошибка была устранена

Ответ №1:

Этот вопрос был решен. файл .pt был сильно поврежден. После удаления поврежденного файла .pt и повторного запуска сценария предварительной обработки и, следовательно, обучающего сценария, я больше не получал ошибку.

Комментарии:

1. Что это .pt за файл? В вашем первоначальном вопросе нет упоминания об этом файле.

2. файл data.pkl в данном случае представляет собой маринованный файл .pt

3. Хорошо, спасибо, не могли бы вы отредактировать свой вопрос, чтобы он был понятнее для будущих читателей?