Google Cloud Storage (GCS) можно использовать с tfd по нескольким причинам:
- Хранение предварительно обработанных данных
- Доступ к наборам данных, данные которых хранятся в GCS
Доступ через сегмент TFDS GCS
Некоторые наборы данных доступны непосредственно в нашем сегменте GCS gs://tfds-data/datasets/
без какой-либо аутентификации:
- Если
tfds.load(..., try_gcs=False)
(по умолчанию), набор данных будет скопирован локально в~/tensorflow_datasets
во времяdownload_and_prepare
. - Если
tfds.load(..., try_gcs=True)
набор данных будет передаваться непосредственно из GCS (download_and_prepare
будет пропущен).
Вы можете проверить, размещен ли набор данных в общедоступном сегменте, с помощью tfds.is_dataset_on_gcs('mnist')
.
Аутентификация
Прежде чем начать, вам следует решить, как вы хотите пройти аутентификацию. Есть три варианта:
- нет аутентификации (он же анонимный доступ)
- используя свою учетную запись Google
- используя сервисную учетную запись (можно легко поделиться с другими членами вашей команды)
Подробную информацию можно найти в документации Google Cloud.
Упрощенные инструкции
Если вы запускаете из colab, вы можете пройти аутентификацию под своей учетной записью, но выполните:
from google.colab import auth
auth.authenticate_user()
Если вы работаете на своем локальном компьютере (или на виртуальной машине), вы можете пройти аутентификацию под своей учетной записью, выполнив:
gcloud auth application-default login
Если вы хотите войти в систему с учетной записью службы, загрузите ключ файла JSON и установите
export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>
Использование Google Cloud Storage для хранения предварительно обработанных данных
Обычно, когда вы используете наборы данных TensorFlow, загруженные и подготовленные данные будут кэшироваться в локальном каталоге (по умолчанию ~/tensorflow_datasets
).
В некоторых средах, где локальный диск может быть эфемерным (временный облачный сервер или блокнот Colab ) или вам необходимо, чтобы данные были доступны на нескольких машинах, полезно установить data_dir
в систему облачного хранения, например Google Cloud Storage (GCS). ведро.
Как?
Создайте сегмент GCS и убедитесь, что у вас (или вашего сервисного аккаунта) есть разрешения на чтение и запись в нем (см. инструкции по авторизации выше).
Когда вы используете tfds
, вы можете установить data_dir
на "gs://YOUR_BUCKET_NAME"
ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")
Предостережения:
- Этот подход работает для наборов данных, которые используют только
tf.io.gfile
для доступа к данным. Это верно для большинства наборов данных, но не для всех. - Помните, что доступ к GCS — это доступ к удаленному серверу и потоковая передача данных с него, поэтому вы можете понести расходы на сеть.
Доступ к наборам данных, хранящимся в GCS
Если владельцы набора данных разрешили анонимный доступ, вы можете просто запустить код tfds.load — и он будет работать как обычная загрузка из Интернета.
Если набор данных требует аутентификации, воспользуйтесь приведенными выше инструкциями, чтобы решить, какой вариант вам нужен (собственная учетная запись или учетная запись службы), и сообщите имя учетной записи (то есть адрес электронной почты) владельцу набора данных. После того как они предоставят вам доступ к каталогу GCS, вы сможете запустить код загрузки tfds.