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

1656597735 kak zagruzhat bolshie fajly v google colab i udalennye bloknoty

от Бхарат Радж

NHHPfQ0REk3MQuQ2gr9njfUthdZLqLnkIDbc
Фото Томаса Келли на Unsplash

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

В этом блоге собраны некоторые методы, которые я считаю полезными загрузка и загрузка большие файлы из вашей локальной системы к Google Colab. Я также включил дополнительные методы, которые могут быть полезны для переноски меньшие файлы с меньшими усилиями. Некоторые методы можно распространить на другие удаленные услуги ноутбуков Jupyter, как Paperspace Gradient.

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

Самым эффективным методом передачи больших файлов является использование облачной системы хранения, например Dropbox или Google Диск.

1. Dropbox

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

Шаг 1: Архивируйте и загружайте

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

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

tar -cvf dataset.tar ~/Dataset

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

Шаг 2: Клонируйте репозиторий

Откройте Google Colab и создайте новый блокнот.

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

!git clone 
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:

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

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

2. Google Диск

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

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

Шаг 1: Архивируйте и загружайте

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

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

tar -cvf dataset.tar ~/Dataset

И опять же вы можете использовать WinRar или 7zip, если хотите. Загрузите заархивированный набор данных на Диск Google.

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

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

!pip install PyDrive

Импортируйте необходимые библиотеки и методы (The смелый импорт требуется только для Google Colab. Не импортируйте их, если вы не используете 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 Drive из Colab. Сначала выполните следующие команды:

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

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

hzfWkut06QN9A99io686hCuHLETczZemgM9Y
Предложить аутентифицировать пользователя

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

Некоторые из следующих шагов приведены из руководства быстрого запуска PyDrive.

Выделите консоль API и создайте собственный проект. Затем найдите «Google Drive API», выберите запись и нажмите «Включить». Выберите «Учетные данные» в меню слева, нажмите «Создать аккаунт», выберите «Идентификатор клиента OAuth». Вы должны увидеть меню, как на изображении ниже:

jP9acVWbTFaXXFctxTPZNSuw2EP2xqZZVg0R

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

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

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

dOEeYDLPP98VFZDSNqXTYxkzc9B6o8fsRdTn
Кнопка загрузки показана красным цветом

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

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

Остальные процедуры есть похож в Google Colab.

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

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

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

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

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

Загрузите в Colab из Google Диска:

Выполните следующие команды. здесь, YOUR_FILE_ID получено на предыдущем шаге, и СКАЧАТЬ.tar – это имя (или путь), как вы хотите сохранить файл.

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

Загрузите на Google Диск с 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')

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

2. GitHub

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

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

Но обратите внимание, что GitHub имеет жесткое ограничение в 25 МБ файла и мягкое ограничение в 1 Гб на хранилище.

Спасибо, что прочли эту статью! Оставьте несколько хлопков, если вам интересно! Если у вас возникнут вопросы, вы можете связаться со мной в социальных сетях или отправить электронное письмо (bharathrajn98[at]Gmail[dot]com).

Добавить комментарий

Ваш адрес email не будет опубликован.