Как эффективно работать с Google Colab? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь обучить нейронную сеть на Colab, используя там GPU. Теперь мне интересно, нахожусь ли я на правильном мосту и все ли шаги, которые я делаю, необходимы, потому что процесс, которому я следую, не кажется мне очень эффективным.

# Install the PyDrive wrapper & import libraries.
# This only needs to be done once per 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 per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

import os

# choose a local (colab) directory to store the data.
local_root_path = os.path.expanduser("~/data")
try:
  os.makedirs(local_root_path)
except: pass

def ListFolder(google_drive_id, destination):
  file_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % google_drive_id}).GetList()
  counter = 0
  for f in file_list:
    # If it is a directory then, create the dicrectory and upload the file inside it
    if f['mimeType']=='application/vnd.google-apps.folder': 
      folder_path = os.path.join(destination, f['title'])
      os.makedirs(folder_path)
      print('creating directory {}'.format(folder_path))
      ListFolder(f['id'], folder_path)
    else:
      fname = os.path.join(destination, f['title'])
      f_ = drive.CreateFile({'id': f['id']})
      f_.GetContentFile(fname)
      counter += 1
  print('{} files were uploaded in {}'.format(counter, destination))

ListFolder("1s1Ks_Gf_cW-F-RwXFjBu96svbmqiXB0o", local_root_path)

Эти команды позволяют подключаться Блокнот в Colab с моим Google Диском и хранит данные в Colab. Поскольку у меня много изображений (более 180k), хранение данных в Colab занимает очень и очень много времени и частично обрывается соединение. Теперь мне интересно, нужно ли загружать все данные с моего Google Диска в Colab?

Если нет, что мне делать вместо этого для работы с данными с Google Диска? Если да, есть ли способ сделать это более эффективно? Или, может быть, я могу работать с Colab по-другому?

1 Ответ

2 голосов
/ 26 мая 2020

Вы можете получить доступ к файлам прямо на вашем диске Google, не копируя их в среду Notebook.
Выполните этот код в одной ячейке:

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

И попробуйте:

!ls /content/gdrive

Теперь вы можете скопировать свои файлы из / в каталог / content / gdrive , и они появятся на вашем Google Диске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...