tfds 和 Google Cloud Storage

Google Cloud Storage (GCS) 可與 tfds 搭配使用,原因如下:

  • 儲存預先處理的資料
  • 存取在 GCS 上儲存資料的資料集

透過 TFDS GCS 儲存桶存取

部分資料集可直接在我們的 GCS 儲存桶 gs://tfds-data/datasets/ 中取得,無需任何驗證

您可以使用 tfds.is_dataset_on_gcs('mnist') 檢查資料集是否託管在公開儲存桶上。

驗證

開始之前,您應決定要如何驗證。有三個選項:

  • 無驗證 (亦稱匿名存取)
  • 使用您的 Google 帳戶
  • 使用服務帳戶 (可輕鬆與團隊中的其他人共用)

您可以在 Google Cloud 文件中找到詳細資訊

簡化指示

如果您從 Colab 執行,可以使用您的帳戶進行驗證,但執行

from google.colab import auth
auth.authenticate_user()

如果您在本機電腦 (或 VM) 上執行,可以執行以下程式碼,使用您的帳戶進行驗證

gcloud auth application-default login

如果您想使用服務帳戶登入,請下載 JSON 檔案金鑰並設定

export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>

使用 Google Cloud Storage 儲存預先處理的資料

通常,當您使用 TensorFlow Datasets 時,下載和準備好的資料會快取在本地目錄中 (預設為 ~/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 下載程式碼。