EOFError: исчерпан ввод с использованием torch.load () - PullRequest
0 голосов
/ 14 апреля 2020

Я часто видел эту ошибку, и часто это происходило из-за того, что файл не закрывался должным образом после открытия. Но так как я использую встроенную функцию torch.load (), я не уверен, что я мог бы сделать по-другому.

Сначала часть сохранения:

    torch.save({
            'model_state_dict': agent.dqn.state_dict(),
             ...
            'loss_history': agent.losshistory
            }, modelpath)

и здесь загрузка часть, где я также получаю сообщение об ошибке:

if os.path.exists(modelpath):
    checkpoint = torch.load(modelpath)
    agent.dqn.load_state_dict(checkpoint['model_state_dict'])
    ...
    agent.losshistory = checkpoint['loss_history']

и здесь ошибка:

Traceback (most recent call last):
  File "c:/Users/levin/Desktop/programming/main.py", line 33, in <module>
    checkpoint = torch.load(modelpath)
  File "C:\Users\levin\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\serialization.py", line 529, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "C:\Users\levin\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\serialization.py", line 702, in _legacy_load
    result = unpickler.load()
EOFError: Ran out of input

Еще одна вещь, которую я хочу упомянуть, это то, что я использовал этот точный код несколько раз без проблема. Я не помню, чтобы что-нибудь изменилось, что могло вызвать ошибку.

1 Ответ

0 голосов
/ 14 апреля 2020

В соответствии с этим потоком , похоже, возникает исключение при чтении пустого файла, поэтому, пожалуйста, проверьте размер документа перед его чтением и опубликуйте ответ, если он не решен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...