Модель сохранения Pytorch UserWarning: Не удалось получить исходный код для контейнера типа Network - PullRequest
0 голосов
/ 11 сентября 2018

При сохранении модели в Pytorch с помощью:

torch.save(model, 'checkpoint.pth')

я получаю следующее предупреждение:

/ opt / conda / lib / python3.6 / site-packages /torch / serialization.py: 193: UserWarning: Не удалось получить исходный код для контейнера типа Network.Он не будет проверен на правильность при загрузке."type" + obj. name + ". Не проверяется"

При загрузке я получаю следующую ошибку:

state_dict = torch.load('checkpoint_state_dict.pth')
model = torch.load('checkpoint.pth')
model.load_state_dict(state_dict)


AttributeError                            Traceback (most recent call last)
<ipython-input-2-6a79854aef0f> in <module>()
      2 state_dict = torch.load('checkpoint_state_dict.pth')
      3 model = 0
----> 4 model = torch.load('checkpoint.pth')
      5 model.load_state_dict(state_dict)

/opt/conda/lib/python3.6/site-packages/torch/serialization.py in load(f, map_location, pickle_module)
    301         f = open(f, 'rb')
    302     try:
--> 303         return _load(f, map_location, pickle_module)
    304     finally:
    305         if new_fd:

/opt/conda/lib/python3.6/site-packages/torch/serialization.py in _load(f, map_location, pickle_module)
    467     unpickler = pickle_module.Unpickler(f)
    468     unpickler.persistent_load = persistent_load
--> 469     result = unpickler.load()
    470 
    471     deserialized_storage_keys = pickle_module.load(f)

AttributeError: Can't get attribute 'Network' on <module '__main__'>

Почему невозможно сохранить модель и загрузить ее полностью?

1 Ответ

0 голосов
/ 11 сентября 2018

Сохранение

torch.save({'state_dict': model.state_dict()}, 'checkpoint.pth.tar')

Загрузка

model = describe_model()
checkpoint = torch.load('checkpoint.pth.tar')
model.load_state_dict(checkpoint['state_dict'])
...