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:
- Jika
tfds.load(..., try_gcs=False)
(default), kumpulan data akan disalin secara lokal di~/tensorflow_datasets
selamadownload_and_prepare
. - Jika
tfds.load(..., try_gcs=True)
, kumpulan data akan dialirkan langsung dari GCS (download_and_prepare
akan dilewati).
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.