Не удается сохранить модель Pytorch в Google Drive в Google Colab? - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь сохранить мою модель на моем диске в Google Colab.Я использовал следующий код для монтирования своего Google Диска -

from google.colab import drive
drive.mount('/content/gdrive')

После всей предварительной обработки, определения модели и обучения я хочу сохранить свою модель на диске, потому что обучение займет много времени.Итак, я сохраню его, чтобы ездить через равные промежутки времени и перезагрузить с этой точки, чтобы продолжить.Код для сохранения моей модели:

def save_model(model, model_name, iter):
  path = f'content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_{model_name}_iter_{iter}.pth'
  print(f'Saving {model_name} model...')
  torch.save(model.state_dict(), path)
  print(f'{model_name} saved successfully.')

EMBEDDING_DIMS = 128
HIDDEN_SIZE = 256

gru = GRU(vocab.n_words, EMBEDDING_DIMS, HIDDEN_SIZE, 2).to(device)
save_model(gru, 'gru', 0)

Я получаю следующую ошибку:

Saving gru model...
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-27-d2510611a9d4> in <module>()
      9 
     10 gru = GRU(vocab.n_words, EMBEDDING_DIMS, HIDDEN_SIZE, 2).to(device)
---> 11 save_model(gru, 'gru', 0)

<ipython-input-27-d2510611a9d4> in save_model(model, model_name, iter)
      2   path = f'content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_{model_name}_iter_{iter}.pth'
      3   print(f'Saving {model_name} model...')
----> 4   torch.save(model.state_dict(), path)
      5   print(f'{model_name} saved successfully.')
      6 

/usr/local/lib/python3.6/dist-packages/torch/serialization.py in save(obj, f, pickle_module, pickle_protocol)
    217         >>> torch.save(x, buffer)
    218     """
--> 219     return _with_file_like(f, "wb", lambda f: _save(obj, f, pickle_module, pickle_protocol))
    220 
    221 

/usr/local/lib/python3.6/dist-packages/torch/serialization.py in _with_file_like(f, mode, body)
    140             (sys.version_info[0] == 3 and isinstance(f, pathlib.Path)):
    141         new_fd = True
--> 142         f = open(f, mode)
    143     try:
    144         return body(f)

FileNotFoundError: [Errno 2] No such file or directory: 'content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_gru_iter_0.pth'

Я вручную создал папку на своем диске, и нужно создать только файл.,Тем не менее, ошибка сохраняется.Хотя я уверен, что создание папки вручную не требовалось.Проблема в другом.Куда я иду не так?

Ответы [ 3 ]

1 голос
/ 09 апреля 2019

Возможно, вам нужен начальный / на вашем пути.

Попробуйте изменить эту строку:

  path = f'content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_{model_name}_iter_{iter}.pth'

на:

  path = f'/content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_{model_name}_iter_{iter}.pth'
1 голос
/ 09 апреля 2019

Вы не можете сохранять файлы непосредственно на подключенный диск.Это не работает как обычная файловая система.Попробуйте использовать инструмент под названием PyDrive или CoUtils , основанный на PyDrive, разработанный специально для Google Colab: Работа с Google Drive

0 голосов
/ 12 апреля 2019

Я не знаю почему, но сейчас все работает без проблем. Я все еще задаюсь вопросом, почему эта проблема возникла в первую очередь.

...