tfds dan Penyimpanan Google Cloud

Google Cloud Storage (GCS) dapat digunakan dengan tfds karena beberapa alasan:

  • Menyimpan data yang telah diproses sebelumnya
  • Mengakses kumpulan data yang datanya tersimpan di GCS

Akses melalui bucket TFDS GCS

Beberapa set data tersedia langsung di bucket GCS kami gs://tfds-data/datasets/ tanpa autentikasi apa pun:

Anda dapat memeriksa apakah kumpulan data dihosting di bucket publik dengan tfds.is_dataset_on_gcs('mnist') .

Otentikasi

Sebelum memulai, Anda harus memutuskan bagaimana Anda ingin mengautentikasi. Ada tiga opsi:

  • tidak ada otentikasi (alias akses anonim)
  • menggunakan akun Google Anda
  • menggunakan akun layanan (dapat dengan mudah dibagikan dengan orang lain di tim Anda)

Anda dapat menemukan informasi detailnya di dokumentasi Google Cloud

Instruksi yang disederhanakan

Jika dijalankan dari colab, Anda dapat mengautentikasi dengan akun Anda, tetapi menjalankan:

from google.colab import auth
auth.authenticate_user()

Jika Anda menjalankannya di mesin lokal (atau di VM), Anda dapat mengautentikasi dengan akun Anda dengan menjalankan:

gcloud auth application-default login

Jika Anda ingin masuk dengan akun layanan, unduh kunci file JSON dan atur

export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>

Menggunakan Google Cloud Storage untuk menyimpan data yang telah diproses sebelumnya

Biasanya saat Anda menggunakan TensorFlow Datasets, data yang diunduh dan disiapkan akan disimpan dalam cache di direktori lokal (secara default ~/tensorflow_datasets ).

Di beberapa lingkungan yang disk lokalnya mungkin bersifat sementara (server cloud sementara atau notebook Colab ) atau Anda memerlukan data agar dapat diakses oleh beberapa mesin, sebaiknya setel data_dir ke sistem penyimpanan cloud, seperti Google Cloud Storage (GCS) keranjang.

Bagaimana?

Buat bucket GCS dan pastikan Anda (atau akun layanan Anda) memiliki izin baca/tulis di dalamnya (lihat petunjuk otorisasi di atas)

Saat Anda menggunakan tfds , Anda dapat menyetel data_dir ke "gs://YOUR_BUCKET_NAME"

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

Peringatan:

  • Pendekatan ini berfungsi untuk kumpulan data yang hanya menggunakan tf.io.gfile untuk akses data. Hal ini berlaku untuk sebagian besar kumpulan data, namun tidak semua.
  • Ingatlah bahwa mengakses GCS berarti mengakses server jarak jauh dan melakukan streaming data dari server tersebut, sehingga Anda mungkin dikenakan biaya jaringan.

Mengakses kumpulan data yang disimpan di GCS

Jika pemilik kumpulan data mengizinkan akses anonim, Anda dapat melanjutkan dan menjalankan kode tfds.load - dan ini akan berfungsi seperti pengunduhan internet biasa.

Jika kumpulan data memerlukan autentikasi, gunakan petunjuk di atas untuk memutuskan opsi mana yang Anda inginkan (akun sendiri vs akun layanan) dan komunikasikan nama akun (alias email) kepada pemilik kumpulan data. Setelah mereka mengizinkan Anda mengakses direktori GCS, Anda seharusnya dapat menjalankan kode unduhan tfds.