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
podczasdownload_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.