Я не могу загрузить и использовать модель, сохраненную ранее из онлайн-хранилища. Вот код:
model = Model().double() # Model is defined in another class
state_dict = torch.hub.load_state_dict_from_url(r'https://filebin.net/j2977ux7kts41aft/checkpoint_best.pt?t=wjbujfoo')
model.load_state_dict(state_dict)
model.eval()
, который дает мне следующую ошибку:
Traceback (most recent call last):
File "/path/file.py", line 47, in <module>
state_dict = torch.hub.load_state_dict_from_url(r'https://filebin.net/j2977ux7kts41aft/checkpoint_best.pt?t=wjbujfoo')
File "anaconda3/envs/torch_env/lib/python3.6/site-packages/torch/hub.py", line 466, in load_state_dict_from_url
return torch.load(cached_file, map_location=map_location)
File "/anaconda3/envs/torch_env/lib/python3.6/site-packages/torch/serialization.py", line 386, in load
return _load(f, map_location, pickle_module, **pickle_load_args)
File "anaconda3/envs/torch_env/lib/python3.6/site-packages/torch/serialization.py", line 563, in _load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, '\x0a'.
Модель находится в: https://filebin.net/j2977ux7kts41aft/checkpoint_best.pt?t=wjbujfoo
Обратите внимание, что я могу отлично загрузить еговручную, а затем используйте torch.load(path)
, чтобы загрузить его без ошибок, но мне нужно сделать это из кода! Может ли быть так, что сериализация при загрузке с url каким-то образом испортит кодировку pickle?
Редактировать: мне не нужно использовать filebin, достаточно любого онлайн-хранилища, которое поддерживает то, что я пытаюсь сделать.