Как правильно импортировать данные из Google Drive в Google Colab Notebook?

Я знаю, что это очень просто, но мне нужны некоторые указания.

У меня есть Jupyter Notebook, который я использовал для запуска на своей локальной машине с Linux. В блокноте есть некоторый обучающий код для глубокого изучения, который импортирует набор данных, обработку, обучение и прочее.

В моей локальной машине мой набор данных расположен в

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

Эта входная папка содержит две подпапки: тренировка и тестирование. Когда я запускаю ноутбук на своем локальном компьютере, он работает отлично, но у моей системы есть некоторые ограничения, поэтому я решил использовать вместо этого Google Colab.

Но главная проблема, с которой я сталкиваюсь, это как импортировать тот же набор данных в Colab? Как я знаю, это можно сделать с помощью Google Drive, но как?

В настоящее время я загружаю свой набор данных в массив numpy, используя путь к файлу

Если я загружу свой набор данных в Google Диск, как я могу использовать этот путь к файлу?

Например, чтобы получить данные обучения, я использую функцию ниже, которая принимает путь к файлу в качестве параметра

# 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))

Любая помощь могла бы быть полезна. Благодарю вас.

2 ответа

Простой способ синхронизировать ваши файлы с Drive на macOS или Window - это установить клиент Drive Sync - https://www.google.com/drive/download/

Затем в Colab вы можете смонтировать файлы Drive с помощью следующей команды:

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

После этого ваши файлы появятся в пути /content/drive/My Drive и в файловом браузере так:

Вы должны использовать этот код там после загрузки набора данных в Drive

  • Убедитесь, что этот фрагмент кода скопирован в другую ячейку перед выполнением имеющихся у вас ячеек кода.
  • Сначала запустите этот код в ячейке !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, в котором будет указана общая ссылка на этот файл, а в последней части этой ссылки вы получите идентификатор файла. Идентификатор файла выглядит следующим образом: laggVyWshwcyP6kEI-y_W3P8D26sz.

  • Замените этот file_id в коде
Другие вопросы по тегам