首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将Pytorch模型保存到Google Colab中的Google Drive?

无法将Pytorch模型保存到Google Colab中的Google Drive?
EN

Stack Overflow用户
提问于 2019-04-09 23:30:30
回答 3查看 2.8K关注 0票数 0

我正在尝试将我的模型保存到google colab上的驱动器中。我使用以下代码挂载了我的Google Drive-

代码语言:javascript
运行
复制
from google.colab import drive
drive.mount('/content/gdrive')

在所有的预处理、模型定义和训练之后,我想将我的模型保存到驱动器中,因为训练它将需要很长时间。因此,我将它保存到定期驱动,并从该点重新加载以继续。保存我的模型的代码是:

代码语言:javascript
运行
复制
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)

我收到以下错误:

代码语言:javascript
运行
复制
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'

我已经在我的驱动器中手动创建了该文件夹,只需要创建该文件。尽管如此,错误仍然存在。不过,我确信不需要手动创建文件夹。问题出在别的地方。我哪里错了?

EN

回答 3

Stack Overflow用户

发布于 2019-04-10 00:54:20

你可能需要一个领先的/在你的道路上。

尝试更改此行:

代码语言:javascript
运行
复制
  path = f'content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_{model_name}_iter_{iter}.pth'

至:

代码语言:javascript
运行
复制
  path = f'/content/gdrive/My Drive/Machine Learning Models/kaggle_jigsaw_{model_name}_iter_{iter}.pth'
票数 3
EN

Stack Overflow用户

发布于 2019-04-10 00:18:15

您不能将文件直接保存到挂载驱动器。它不像常规的文件系统那样工作。尝试使用名为PyDriveCoUtils的工具,它是基于PyDrive的,专门为Google Colab设计的:Working with Google Drive

票数 2
EN

Stack Overflow用户

发布于 2019-04-12 12:37:09

我不知道为什么,但现在它工作起来没有任何问题。我仍然想知道为什么这个问题一开始就会发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55596375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档