Филипп Лайс
10 июля 2019 г. · чтение 3 мин.
Google Colab отлично подходит для небольших экспериментов с Python и машинным обучением. Но доступ к данным может быть сложным, особенно если вам нужны большие данные, такие как изображения, аудио или видео файлы. Самый простой подход — сохранить данные на вашем Google Диске и получить к ним доступ из Colab, но Google Диск имеет тенденцию создавать тайм-ауты, когда у вас есть большое количество файлов в одной папке.
Более надежным и масштабируемым является Облачное хранилище Google, где вам также будет проще делиться данными с коллегами. Но, к сожалению, нет собственного способа переноса данных с Google Диска в Google Cloud Storage без необходимости загружать и загружать их снова. Однако с помощью Google Colab мы можем передавать файлы довольно легко.
Монтирование Google Диска в Colab
Подключить собственный Google Диск довольно просто. Просто импортируйте инструменты привода и запустите команду mount. Вам будет предложено пройти аутентификацию с помощью токена, который вы создаете с помощью Google Auth API. После того, как вы вставили токен, ваш диск будет подключен к указанному пути.
from google.colab import drive
drive.mount ('/content/drive')
Настройка сегмента Google Cloud Storage
Далее нам нужно создать проект Google Cloud Storage. Перейдите в диспетчер ресурсов и создайте новый проект.
Подключение к сегменту GCS
После настройки корзины вы можете подключить Colab к GCS с помощью Google Auth API и gsutil. Сначала вам нужно аутентифицировать себя так же, как вы это делали для Google Диска, затем вам нужно установить идентификатор проекта, прежде чем вы сможете получить доступ к своей корзине (-ам). Идентификатор проекта отображается в диспетчере ресурсов или URL-адресе, когда вы управляете своими сегментами.
from google.colab import auth
auth.authenticate_user () project_id = 'nifty-depth- 246308 '
! Gcloud config set project {project_id}
! Gsutil ls
Это подключится к вашему проекту и выведет список всех сегментов. Затем вы можете скопировать данные из или в GCS с помощью команды gsutil cp
. Обратите внимание, что содержимое вашего Google Диска находится не в папке /content/drive
напрямую, а в подпапке Мой диск
. Если вы копируете более нескольких файлов, используйте параметр -m
для gsutil, так как он включит многопоточность и значительно ускорит процесс копирования.
bucket_name = 'medium_demo_bucket_190710'! gsutil -m cp -r/content/drive/My Drive/Data/* gs://{bucket_name}/
Вот и все. Теперь процесс запущен, и вы можете время от времени проверять, завершен ли он. Я создал записную книжку Colab с примером кода, приведенным здесь: https://colab.research.google.com/drive/1Xc8E8mKC4MBvQ6Sw6akd_X5Z1cmHSNca
Дополнительную информацию можно найти в документации Colab здесь и в документации gsutil здесь.
Для будущих проектов просто аутентифицируйте записную книжку Colab и перенесите файлы из корзины в локальную файловую систему. Затем вы можете запускать все эксперименты на локальной копии.