Рубрики
Без рубрики

Как загружать большие файлы в Google Colab и удаленные ноутбуки Jupyter

Автор оригинала: FreeCodeCapm Team.

Bharath Raj.

Если вы еще не слышали об этом, Google Colab Является ли платформа, которая широко используется для тестирования прототипов ML на его Бесплатный K80 GPU Отказ Если вы слышали об этом, шансы, что вы дали ему выстрел. Но вы могли бы раздражать из-за сложности, участвующей в передаче больших наборов данных.

Этот блог компилирует некоторые методы, которые я нашел полезным для Загрузка и Загрузка Большие файлы из вашей локальной системы до Google Colab Отказ Я также включил дополнительные методы, которые могут полезны для передачи Меньшие файлы с меньшими усилиями. Некоторые из методов могут быть распространены на другие Услуги удаленного ноутбука Jupyter, как градиент Paperspace.

Передача больших файлов

Наиболее эффективный метод передачи больших файлов – использовать облачную систему хранения, такие как Dropbox или Google Drive Отказ

1. Dropbox.

Dropbox предлагает до 2 ГБ свободного места для хранения на счет. Это устанавливает верхний предел на сумму данных, которые вы можете передавать в любой момент. Передача через Dropbox относительно легче Отказ Вы также можете выполнить те же шаги для Другие ноутбуки , например Градиент Paperspace Отказ

Шаг 1: Архив и загрузка

Загрузка большого количества изображений (или файлов) индивидуально займет очень много времени, поскольку Dropbox (или диск Google) должен индивидуально назначать идентификаторы и атрибуты каждому изображению. Поэтому я рекомендую сначала архивировать ваш набор данных.

Одним из возможных методов архивирования является преобразование папки, содержащей ваш набор данных в файл «.tar». Ниже приведен фрагмент кода показывает, как преобразовать папку с именем «DataSet» в домашнем каталоге в файл «DataSet.Tar», с вашего терминала Linux.

tar -cvf dataset.tar ~/Dataset

В качестве альтернативы, вы можете использовать WinRar или 7Zip, что бы вам удобнее для вас. Загрузите архивированный набор данных в Dropbox.

Шаг 2: клонировать репозиторий

Откройте Google Colab и начните новый ноутбук.

Клон это Github Repository Отказ Я изменил Оригинал Код, чтобы он мог добавить токен доступа Dropbox из ноутбука. Выполнить следующие команды один за один Отказ

!git clone https://github.com/thatbrguy/Dropbox-Uploader.git
cd Dropbox-Uploader
!chmod +x dropbox_uploader.sh

Шаг 3: Создайте токен доступа

Выполните следующую команду, чтобы увидеть первоначальные инструкции по настройке.

!bash dropbox_uploader.sh

Он будет отображать инструкции о том, как получить токен доступа и попросить вас выполнить следующую команду. Замените смелые буквы с вашим токеном доступа, затем выполните:

!echo "INPUT_YOUR_ACCESS_TOKEN_HERE" > token.txt

Выполнить Bash Dropbox_uploader.sh Опять же, чтобы связать свою учетную запись Dropbox в Google Colab. Теперь вы можете загрузить и загружать файлы из ноутбука.

Шаг 4: Передача содержимого

Скачать в Colab из Dropbox:

Выполните следующую команду. Аргумент – это имя файла на Dropbox.

!bash dropbox_uploader.sh download YOUR_FILE.tar

Загрузить в Dropbox из Colab:

Выполните следующую команду. Первый аргумент (RESLACT_ON_COLAB.TXT) – это имя файла, который вы хотите загрузить. Второй аргумент (DropBox.txt) – это имя, которое вы хотите сохранить файл как на Dropbox.

!bash dropbox_uploader.sh upload result_on_colab.txt dropbox.txt

2. Google Drive.

Google Drive предлагает до 15 ГБ бесплатное хранение для каждой учетной записи Google. Это устанавливает верхний предел на сумму данных, которые вы можете передавать в любой момент. Вы всегда можете расширить этот предел на большие суммы. Colab упрощает процесс аутентификации для Google Drive.

Что говорят, я также включал в себя необходимые модификации, которые вы можете выполнить, так что вы можете получить доступ к диску Google из других услуг для ноутбуков Python.

Шаг 1: Архив и загрузка

Как и в случае с Dropbox, загрузка большого количества изображений (или файлов) индивидуально займет очень много времени, поскольку Google Drive должен индивидуально назначать идентификаторы и атрибуты каждому изображению. Поэтому я рекомендую сначала архивировать ваш набор данных.

Одним из возможных методов архивирования является преобразование папки, содержащей ваш набор данных в файл «.tar». Ниже приведен фрагмент кода показывает, как преобразовать папку с именем «DataSet» в домашнем каталоге в файл «DataSet.Tar», с вашего терминала Linux.

tar -cvf dataset.tar ~/Dataset

И снова вы можете использовать WinRAR или 7ZIP, если вы предпочитаете. Загрузите в архивированный набор данных в Google Drive.

Шаг 2: Установка зависимостей

Откройте Google Colab и начните новый ноутбук. Установите Pydrive, используя следующую команду:

!pip install PyDrive

Импортируйте необходимые библиотеки и методы (Imports Bold требуется только для Colab Google. Не импортируйте их, если вы не используете Colab).

import os
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

Шаг 3: Авторизуйте Google SDK

Для Google Colab:

Теперь вы должны авторизовать Google SDK для доступа к диску Google из Colab. Во-первых, выполните следующие команды:

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

Вы получите подсказку, как показано ниже. Следуйте по ссылке, чтобы получить ключ. Скопируйте и вставьте его в поле ввода и нажмите Enter.

Для других служб ноутбуков Jupyter (Ex: градиент Paperspace):

Некоторые из следующих шагов получаются из Pydrive’s Гид QuickStart Отказ

Перейти к API-консоль и сделать свой собственный проект. Затем найдите «API Google Drive API», выберите запись и нажмите «Включить». Выберите «учетные данные» из левого меню, нажмите «Создать учетные данные», выберите «ID Client Oauth». Вы должны увидеть меню, такое как изображение, показанное ниже:

Установите «Тип приложения» на «Другое». Дайте соответствующее имя и нажмите «Сохранить».

Загрузите идентификатор клиента OAUTH 2.0, который вы только что создали. Переименовать Это до client_secrets.json.

Загрузите этот файл JSON в свою ноутбук. Вы можете сделать это, нажав кнопку «Загрузить» с домашней страницы ноутбука (показано ниже). (Примечание. Не используйте эту кнопку, чтобы загрузить ваш набор набора данных, так как это будет чрезвычайно трудоемкость.)

Теперь выполните следующие команды:

gauth = GoogleAuth()
gauth.CommandLineAuth()
drive = GoogleDrive(gauth)

Остальная часть процедуры это Похожие к тому из Google Colab.

Шаг 4: Получите идентификатор вашего файла

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

https://drive.google.com/open?id=YOUR_FILE_ID

Скопируйте только смелую часть вышеуказанной ссылки.

Шаг 5: Передача содержимого

Скачать в Colab из Google Drive:

Выполнить следующие команды. Здесь Your_file_id получается на предыдущем шаге, а Download.tar это имя (или путь), которое вы хотите сохранить файл как.

download = drive.CreateFile({'id': 'YOUR_FILE_ID'})
download.GetContentFile('DOWNLOAD.tar')

Загрузить в Google Drive из Colab:

Выполнить следующие команды. Здесь File_on_colab.txt это имя (или путь) файла на Colab, а Drive.txt это имя (или путь), которое вы хотите сохранить файл как (на диске Google).

upload = drive.CreateFile({'title': 'DRIVE.txt'})
upload.SetContentFile('FILE_ON_COLAB.txt')
upload.Upload()

Передача меньших файлов

Изредка вы можете пройти только один файл CSV и не хочу проходить через все это хлопот. Не заботятся – для этого намного простые методы.

1. Модуль файлов Google Colab

У Google Colab есть встроенный Модуль файлов С помощью которого вы можете загружать или загружать файлы. Вы можете импортировать его, выполнив следующее:

from google.colab import files

Загружать:

Используйте следующую команду для загрузки файлов в Google Colab:

files.upload()

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

Скачивать:

Используйте следующую команду для загрузки файла из Google Colab:

files.download('example.txt')

Эта функция работает лучше всего в Google Chrome Отказ По моему опыту он работал только один раз на Firefox, из-за 10 попыток.

2. Github

Это «Hack-Ish» способ передачи файлов. Вы можете создать репозиторий GitHub с небольшими файлами, которые вы хотите перенести.

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

Но отметим, что GitHub имеет жесткий предел 25 МБ на файл, а мягкий предел 1 ГБ за репозиторий.