#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. Хорошо, спасибо, не могли бы вы отредактировать свой вопрос, чтобы он был понятнее для будущих читателей?