tfds ve Google Bulut Depolama

Google Cloud Storage (GCS), birçok nedenden dolayı tfds ile kullanılabilir:

  • Önceden işlenmiş verilerin saklanması
  • GCS'de depolanan verileri içeren veri kümelerine erişme

TFDS GCS paketi aracılığıyla erişim

Bazı veri kümeleri, herhangi bir kimlik doğrulaması olmadan doğrudan GCS paketimizde gs://tfds-data/datasets/ mevcuttur:

  • Eğer tfds.load(..., try_gcs=False) (varsayılan) ise, veri kümesi download_and_prepare sırasında ~/tensorflow_datasets içine yerel olarak kopyalanacaktır.
  • Eğer tfds.load(..., try_gcs=True) ise, veri kümesi doğrudan GCS'den yayınlanacaktır ( download_and_prepare atlanacaktır).

Bir veri kümesinin genel pakette barındırılıp barındırılmadığını tfds.is_dataset_on_gcs('mnist') ile kontrol edebilirsiniz.

Kimlik doğrulama

Başlamadan önce, nasıl kimlik doğrulaması yapmak istediğinize karar vermelisiniz. Üç seçenek var:

  • kimlik doğrulama yok (diğer adıyla anonim erişim)
  • Google hesabınızı kullanarak
  • bir hizmet hesabı kullanarak (ekibinizdeki diğer kişilerle kolayca paylaşılabilir)

Ayrıntılı bilgiyi Google Cloud belgelerinde bulabilirsiniz

Basitleştirilmiş talimatlar

Colab'dan çalıştırıyorsanız hesabınızla kimlik doğrulaması yapabilirsiniz ancak şunları çalıştırabilirsiniz:

from google.colab import auth
auth.authenticate_user()

Yerel makinenizde (veya VM'de) çalıştırıyorsanız aşağıdakileri çalıştırarak hesabınızla kimlik doğrulaması yapabilirsiniz:

gcloud auth application-default login

Hizmet hesabıyla oturum açmak istiyorsanız JSON dosya anahtarını indirin ve ayarlayın.

export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>

Önceden işlenmiş verileri depolamak için Google Cloud Storage'ı kullanma

Normalde TensorFlow Veri Kümelerini kullandığınızda, indirilen ve hazırlanan veriler yerel bir dizinde (varsayılan olarak ~/tensorflow_datasets ) önbelleğe alınır.

Yerel diskin geçici olabileceği bazı ortamlarda (geçici bir bulut sunucusu veya Colab not defteri ) veya verilere birden fazla makine tarafından erişilmesinin gerekli olduğu bazı ortamlarda, data_dir Google Bulut Depolama (GCS) gibi bir bulut depolama sistemine ayarlamak yararlı olabilir kova.

Nasıl?

Bir GCS paketi oluşturun ve sizin (veya hizmet hesabınızın) üzerinde okuma/yazma izinlerine sahip olduğunuzdan emin olun (yukarıdaki yetkilendirme talimatlarına bakın)

tfds kullandığınızda data_dir "gs://YOUR_BUCKET_NAME" olarak ayarlayabilirsiniz.

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

Uyarılar:

  • Bu yaklaşım, veri erişimi için yalnızca tf.io.gfile dosyasını kullanan veri kümeleri için işe yarar. Bu çoğu veri kümesi için geçerlidir ancak hepsi için geçerli değildir.
  • GCS'ye erişmenin, uzak bir sunucuya erişim sağlamak ve bu sunucudan veri akışı yapmak anlamına geldiğini, dolayısıyla ağ maliyetlerine maruz kalabileceğinizi unutmayın.

GCS'de depolanan veri kümelerine erişme

Veri kümesi sahipleri anonim erişime izin verdiyse, devam edip tfds.load kodunu çalıştırabilirsiniz; bu, normal bir internet indirmesi gibi çalışır.

Veri kümesi kimlik doğrulama gerektiriyorsa hangi seçeneği istediğinize (kendi hesabı mı yoksa hizmet hesabı mı) karar vermek için lütfen yukarıdaki talimatları kullanın ve hesap adını (aka e-posta) veri kümesi sahibine iletin. GCS dizinine erişmenizi sağladıktan sonra tfds indirme kodunu çalıştırabilmeniz gerekir.