Google Cloud Storage (GCS) 可與 tfds 搭配使用,原因如下:
- 儲存預先處理的資料
- 存取在 GCS 上儲存資料的資料集
透過 TFDS GCS 儲存桶存取
部分資料集可直接在我們的 GCS 儲存桶 gs://tfds-data/datasets/
中取得,無需任何驗證
- 如果
tfds.load(..., try_gcs=False)
(預設值),資料集會在download_and_prepare
期間在本機~/tensorflow_datasets
中複製。 - 如果
tfds.load(..., try_gcs=True)
,資料集將直接從 GCS 串流 (download_and_prepare
將會略過)。
您可以使用 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 下載程式碼。