tfds i Google Cloud Storage

Google Cloud Storage (GCS) może być używany z tfds z wielu powodów:

  • Przechowywanie wstępnie przetworzonych danych
  • Dostęp do zbiorów danych, które zawierają dane przechowywane w GCS

Dostęp poprzez segment TFDS GCS

Niektóre zbiory danych są dostępne bezpośrednio w naszym zasobniku GCS gs://tfds-data/datasets/ bez żadnego uwierzytelniania:

  • Jeśli tfds.load(..., try_gcs=False) (domyślnie), zestaw danych zostanie skopiowany lokalnie do ~/tensorflow_datasets podczas download_and_prepare .
  • Jeśli tfds.load(..., try_gcs=True) , zbiór danych będzie przesyłany strumieniowo bezpośrednio z GCS ( download_and_prepare zostanie pominięte).

Możesz sprawdzić, czy zbiór danych jest hostowany w zasobniku publicznym za pomocą tfds.is_dataset_on_gcs('mnist') .

Uwierzytelnianie

Przed rozpoczęciem powinieneś zdecydować, w jaki sposób chcesz się uwierzytelnić. Istnieją trzy opcje:

  • brak uwierzytelnienia (czyli dostęp anonimowy)
  • za pomocą konta Google
  • korzystanie z konta usługi (można je łatwo udostępnić innym członkom zespołu)

Szczegółowe informacje znajdziesz w dokumentacji Google Cloud

Uproszczone instrukcje

Jeśli korzystasz z Colab, możesz uwierzytelnić się na swoim koncie, ale uruchamiając:

from google.colab import auth
auth.authenticate_user()

Jeśli uruchamiasz na komputerze lokalnym (lub w maszynie wirtualnej), możesz uwierzytelnić się na swoim koncie, uruchamiając:

gcloud auth application-default login

Jeśli chcesz zalogować się za pomocą konta serwisowego, pobierz klucz pliku JSON i ustaw

export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>

Korzystanie z Google Cloud Storage do przechowywania wstępnie przetworzonych danych

Zwykle, gdy używasz zestawów danych TensorFlow, pobrane i przygotowane dane będą buforowane w katalogu lokalnym (domyślnie ~/tensorflow_datasets ).

W niektórych środowiskach, w których dysk lokalny może być tymczasowy (tymczasowy serwer w chmurze lub notatnik Colab ) lub gdy potrzebujesz, aby dane były dostępne na wielu komputerach, warto ustawić data_dir na system przechowywania w chmurze, np. Google Cloud Storage (GCS) wiaderko.

Jak?

Utwórz zasobnik GCS i upewnij się, że Ty (lub Twoje konto usługi) macie w nim uprawnienia do odczytu/zapisu (zobacz instrukcje dotyczące autoryzacji powyżej)

Kiedy używasz tfds , możesz ustawić data_dir na "gs://YOUR_BUCKET_NAME"

ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")

Zastrzeżenia:

  • To podejście działa w przypadku zestawów danych, które korzystają wyłącznie tf.io.gfile w celu uzyskania dostępu do danych. Dotyczy to większości zbiorów danych, ale nie wszystkich.
  • Pamiętaj, że dostęp do GCS oznacza dostęp do zdalnego serwera i przesyłanie strumieniowe z niego danych, więc możesz ponieść koszty sieci.

Dostęp do zbiorów danych przechowywanych w GCS

Jeśli właściciele zbiorów danych zezwolili na anonimowy dostęp, możesz po prostu uruchomić kod tfds.load — będzie to działać jak zwykłe pobieranie z Internetu.

Jeśli zbiór danych wymaga uwierzytelnienia, skorzystaj z powyższych instrukcji, aby wybrać opcję (własne konto czy konto usługi) i podaj nazwę konta (czyli adres e-mail) właścicielowi zbioru danych. Po umożliwieniu dostępu do katalogu GCS powinno być możliwe uruchomienie kodu pobierania tfds.