【问题标题】:How to Upload Many Files to Google Colab?如何将许多文件上传到 Google Colab?
【发布时间】:2018-07-30 06:08:21
【问题描述】:

我正在开发 image segmentation machine learning project,我想在 Google Colab 上对其进行测试。

对于训练数据集,我有 700 张图像,大部分是 256x256,我需要将它们上传到我的项目的 python numpy 数组中。我还有数千个相应的掩码文件要上传。它们目前存在于 Google 驱动器上的各种子文件夹中,但我无法将它们上传到 Google Colab 以在我的项目中使用。

到目前为止,我已经尝试使用上传速度似乎非常慢的 Google Fuse 和给我带来各种身份验证错误的 PyDrive。我大部分时间都在使用 Google Colab I/O 示例代码。

我应该怎么做? PyDrive 会是正确的选择吗?是否有代码可以一次上传文件夹结构或多个文件?

【问题讨论】:

    标签: python machine-learning jupyter google-colaboratory


    【解决方案1】:

    您可以将所有数据放入您的谷歌驱动器,然后安装驱动器。我就是这样做的。让我分步说明。

    第 1 步: 将您的数据传输到您的 Google 云端硬盘。

    第 2 步: 运行以下代码来挂载你的谷歌驱动器。

    # Install a Drive FUSE wrapper.
    # https://github.com/astrada/google-drive-ocamlfuse
    !apt-get install -y -qq software-properties-common python-software-properties module-init-tools
    !add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
    !apt-get update -qq 2>&1 > /dev/null
    !apt-get -y install -qq google-drive-ocamlfuse fuse
    
    
    
    # Generate auth tokens for Colab
    from google.colab import auth
    auth.authenticate_user()
    
    
    # Generate creds for the Drive FUSE library.
    from oauth2client.client import GoogleCredentials
    creds = GoogleCredentials.get_application_default()
    import getpass
    !google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
    vcode = getpass.getpass()
    !echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
    
    
    # Create a directory and mount Google Drive using that directory.
    !mkdir -p My Drive
    !google-drive-ocamlfuse My Drive
    
    
    !ls My Drive/
    
    # Create a file in Drive.
    !echo "This newly created file will appear in your Drive file list." > My Drive/created.txt
    

    第 3 步: 运行以下行以检查您是否可以在已安装的驱动器中看到所需的数据。

    !ls Drive
    

    第 4 步:

    现在将您的数据加载到 numpy 数组中,如下所示。我的 exel 文件中有我的训练、简历和测试数据。

    train_data = pd.read_excel(r'Drive/train.xlsx')
    test = pd.read_excel(r'Drive/test.xlsx')
    cv= pd.read_excel(r'Drive/cv.xlsx')
    

    希望对你有帮助。

    编辑

    要将数据从 colab 笔记本环境下载到驱动器,您可以运行以下代码。

    # Install the PyDrive wrapper & import libraries.
    # This only needs to be done once in a notebook.
    !pip install -U -q PyDrive
    from pydrive.auth import GoogleAuth
    from pydrive.drive import GoogleDrive
    from google.colab import auth
    from oauth2client.client import GoogleCredentials
    
    
    
    # Authenticate and create the PyDrive client.
    # This only needs to be done once in a notebook.
    auth.authenticate_user()
    gauth = GoogleAuth()
    gauth.credentials = GoogleCredentials.get_application_default()
    drive = GoogleDrive(gauth)
    
    
    
    # Create & upload a file.
    uploaded = drive.CreateFile({'data.xlsx': 'data.xlsx'})
    uploaded.SetContentFile('data.xlsx')
    uploaded.Upload()
    print('Uploaded file with ID {}'.format(uploaded.get('id')))
    

    【讨论】:

    • 由于某种原因,这种方法不再起作用,URL地址没有显示,只有输入密钥的字段。
    • @rraallvv...我目前正在这样做,它对我有用。我建议重新启动您的 colab 笔记本并重试。您可以尝试重新启动浏览器。如果它仍然不起作用,请告诉我。
    • @AbdulKarimKhan 谢谢你的sn-p。如果我使用的数据集不在我的本地机器上怎么办。我可以在安装了我的驱动器的情况下使用 colab 来下载数据集并将其保存在驱动器上的文件夹中吗?
    • @WassimSeifeddine..要将数据下载到您的谷歌驱动器,请查看我更新的答案。数据仅从您的 Google Drive 上传和下载到您的 Google Drive。然后,您可以将该数据传输到本地计算机。
    【解决方案2】:

    以下是将大型数据集上传到 Google Colab 的几个步骤

    1.将您的数据集上传到免费的云存储,如 dropbox、openload 等。(我使用了 dropbox)
    2.为您上传的文件创建一个可共享的链接并复制它。
    3.在 Google Colab 中打开您的笔记本并在其中一个单元格中运行此命令:

        !wget your_shareable_file_link
    

    就是这样!
    您可以将数据集压缩为 zip 或 rar 文件,然后使用以下命令在 Google Colab 中下载后将其解压缩:

        !unzip downloaded_filename -d destination_folder
    

    【讨论】:

    • 或使用 github 保存所有文件并执行:git clone [YOUR_REPO]
    【解决方案3】:

    先压缩文件,然后将其上传到 Google 云端硬盘。

    查看这个简单的解压命令:

    !unzip {file_location}
    

    例子:

    !unzip drive/models.rar
    

    【讨论】:

    • 没用。而是首先使用 wget 下载 zip,然后解压缩。
    【解决方案4】:

    Step1:通过运行以下命令安装驱动器:

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

    这将输出一个链接。单击链接,点击允许,复制授权码并将其粘贴到 colab 单元格中的框,上面写有“输入您的授权码:”文本。 此过程只是授予 colab 访问您的 Google Drive 的权限。

    第 2 步:将您的文件夹(根据文件夹大小压缩或解压缩)上传到 Google 云端硬盘

    第 3 步:现在进入云端硬盘目录和文件,找到您上传的文件夹/压缩文件。

    此过程可能如下所示: 启动时 colab 中的当前工作目录将是 /content/ 只是为了确保,在单元格中运行以下命令:

    !pwd
    

    它将显示您当前所在的目录。(pwd 代表“打印工作目录”) 然后使用如下命令:

    !ls
    

    列出你所在目录中的目录和文件 和命令:

    !cd /directory/name/of/your/choice
    

    移动到目录以找到您上传的文件夹或上传的 .zip 文件。

    就这样,您就可以开始使用机器学习模型了! :)

    希望这些简单的步骤可以避免您花费太多不必要的时间来弄清楚 colab 的工作原理,而实际上您应该将大部分时间花在弄清楚机器学习模型、它的超参数、预处理上...

    【讨论】:

      【解决方案5】:

      您可能想尝试kaggle-cli 模块,正如here 所讨论的那样

      【讨论】:

      【解决方案6】:

      有很多方法可以做到这一点:

      1. 您可能希望push 将您的数据放入 github 存储库,然后在 Google Colab 代码单元中运行:

        !git clone https://www.github.com/{repo}.git

      2. 您可以将数据上传到Google drive,然后在您的代码单元格中:

      from google.colab import drive

      drive.mount('/content/drive')

      1. 使用 transfer.sh 工具:您可以访问这里查看它是如何工作的:

        transfer.sh

      【讨论】:

        【解决方案7】:

        Google Colab 让用户更方便地上传文件 [从本地机器、Google 驱动器或 github]。您需要单击笔记本左侧窗格中的Mount Drive Option,您将可以访问存储在驱动器中的所有文件。

        选择文件->右键->复制路径Refer this

        使用python导入方法从该路径导入文件,例如:

        import pandas as pd
        data = pd.read_csv('your copied path here')
        

        要一次性导入多个文件,可能需要编写一个函数。

        【讨论】:

          最近更新 更多