【问题标题】:How to properly import data from Google Drive to Google Colab Notebook?如何将数据从 Google Drive 正确导入到 Google Colab Notebook?
【发布时间】:2023-04-04 09:13:02
【问题描述】:

我知道这很简单,但我需要一些指导。

我有一个 Jupyter Notebook,用于在本地 Linux 机器上运行。笔记本有一些深度学习训练代码,可以导入数据集、处理和训练等。

在我的本地机器上,我的数据集位于

'/home/USERNAME/Workspace/Final Year Project/input'

这个input文件夹有两个子文件夹traintest 当我在本地机器上运行笔记本时,它运行良好,但我的系统有一些限制,所以我选择使用 Google Colab。

但我面临的主要问题是如何在 Colab 中导入相同的数据集?就像我知道它可以使用 Google Drive 来完成,但是如何?

目前我正在使用文件路径将我的数据集加载到我的 numpy 数组中

如果我将数据集上传到 Google Drive,我该如何使用这个文件路径?

例如,为了获取训练数据,我使用下面的函数,它以文件路径为参数

# Get training data
def get_X_data(path, output_shape=(None, None)):
    '''
    Loads images from path/{id}/images/{id}.png into a numpy array
    '''
    img_paths = ['{0}/{1}/images/{1}.png'.format(path, id) for id in os.listdir(path)]
    X_data = np.array([skimage.transform.resize(skimage.io.imread(path)[:,:,:3], output_shape=output_shape, mode='constant', preserve_range=True) for path in img_paths], dtype=np.uint8)  #take only 3 channels/bands

    return X_data
X_train = get_X_data(train_path, output_shape=(img_height,img_width))

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: python import jupyter-notebook google-colaboratory pydrive


    【解决方案1】:

    在 macOS 或 Window 上将文件同步到云端硬盘的一种简单方法是安装云端硬盘同步客户端 -- https://www.google.com/drive/download/

    然后,在 Colab 中,您可以使用以下命令挂载您的云端硬盘文件:

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

    之后,您的文件将出现在路径/content/drive/My Drive 和文件浏览器中,如下所示:

    【讨论】:

      【解决方案2】:

      在云端硬盘中上传数据集后,您必须在此处使用此代码

      • 确保在之前将这段代码复制到另一个单元格中 执行您拥有的代码单元
      • 首先在单元格!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
      
      auth.authenticate_user()
      gauth = GoogleAuth()
      gauth.credentials = GoogleCredentials.get_application_default()
      drive = GoogleDrive(gauth)
      file_id = 'REPLACE_WITH_YOUR_FILE_ID'
      downloaded = drive.CreateFile({'id': file_id})
      print('Downloaded content "{}"'.format(downloaded.GetContentString()))
      

      注意:对于 Google 驱动器中的每个文件,您都将有一个 file_id,用于获取该文件的可共享链接和最后一部分该链接您将获得一个文件ID。文件 ID 如下所示:laggVyWshwcyP6kEI-y_W3P8D26sz

      • 在代码中替换这个file_id

      【讨论】:

      • 如果有帮助,请将其作为验证答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 2021-02-24
      • 2021-01-12
      • 2021-04-30
      • 2018-10-22
      相关资源
      最近更新 更多