tfds и облачное хранилище Google

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.