【问题标题】:How to download large files (like weights of a model) from Colaboratory?如何从 Colaboratory 下载大文件(如模型的权重)?
【发布时间】:2018-08-31 20:55:01
【问题描述】:

我尝试从 google Colaboratory 下载小文件。它们很容易下载,但是每当我尝试下载大尺寸的文件时,它会显示错误?大文件的下载方式是什么?

【问题讨论】:

    标签: python-3.x tensorflow gpu google-colaboratory


    【解决方案1】:

    如果您创建了一个大的 zip 文件,比如 my_archive.zip,那么您可以按以下方式下载它:

    1. 从您的 Google colab Notebook 安装您的 Google 驱动器。你会 被要求输入验证码。
    from google.colab import drive
    drive.mount('/content/gdrive',force_remount=True)
    
    1. 将 zip 文件复制到您的任何 google 驱动器文件夹(例如下载文件夹)。您也可以将文件复制到作为根文件夹的“我的云端硬盘”中。
    !cp my_archive.zip '/content/gdrive/My Drive/downloads/'
    !ls -lt '/content/gdrive/My Drive/downloads/' 
    

    最后,您可以将 zip 文件从 Google 驱动器下载到本地计算机。

    【讨论】:

      【解决方案2】:

      这就是我处理这个问题的方式:

      from google.colab import auth
      from googleapiclient.http import MediaFileUpload
      from googleapiclient.discovery import build
      
      auth.authenticate_user()
      

      然后点击链接,授权 Google Drive 并将代码粘贴到 notebook 中。

      drive_service = build('drive', 'v3')
      
      def save_file_to_drive(name, path):
          file_metadata = {
            'name': name,
            'mimeType': 'application/octet-stream'
           }
      
           media = MediaFileUpload(path, 
                          mimetype='application/octet-stream',
                          resumable=True)
      
           created = drive_service.files().create(body=file_metadata,
                                         media_body=media,
                                         fields='id').execute()
      
           print('File ID: {}'.format(created.get('id')))
      
           return created
      

      然后:

      save_file_to_drive(destination_name, path_to_file)
      

      这会将所有文件保存到您的 Google 云端硬盘中,您可以在其中下载或同步它们或其他任何内容。

      【讨论】:

      • 这给了我一个错误:media = MediaFileUpload(path, ^ IndentationError: unexpected indent
      • 尝试将所有内容放在一行中:media = MediaFileUpload(path, mimetype='application/octet-stream', resumable=True)
      • path_to_file 是什么?它是驱动器链接还是只是诸如 MyDrive/ 模型之类的显式路径? @EricAntoineScuccimarra
      • path_to_file 是您要将文件保存在云端硬盘中的名称。如果您可以指定子目录,我还无法弄清楚。
      【解决方案3】:

      Google colab 不允许您使用 files.download() 下载大文件。但是您可以使用以下方法之一来访问它:

      1. 最简单的方法是使用 github 提交和推送文件,然后将其克隆到本地计算机。
      2. 您可以将 google-drive 挂载到您的 colab 实例并在那里写入文件。

      【讨论】:

      • 当我运行命令时 - !git push -u origin master 它询问我的用户名和密码。如何在当前运行的单元格中输入我的用户名和密码?看不到我可以输入它们的空间。
      • @shivinsaluja 您无法输入用户名和密码。您需要使用 ssh 设置对 github 的访问:help.github.com/articles/connecting-to-github-with-ssh
      • 你不能这样做也是因为 sshj-keygen 想要键盘交互
      猜你喜欢
      • 2018-08-02
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-24
      • 2021-11-07
      • 1970-01-01
      • 2018-07-21
      相关资源
      最近更新 更多