tfds والتخزين السحابي من Google

يمكن استخدام Google Cloud Storage (GCS) مع tfds لأسباب متعددة:

  • تخزين البيانات المعالجة مسبقًا
  • الوصول إلى مجموعات البيانات التي تحتوي على بيانات مخزنة على GCS

الوصول من خلال دلو TFDS GCS

تتوفر بعض مجموعات البيانات مباشرة في مجموعة GCS الخاصة بنا gs://tfds-data/datasets/ دون أي مصادقة:

  • إذا كان tfds.load(..., try_gcs=False) (افتراضي)، فسيتم نسخ مجموعة البيانات محليًا في ~/tensorflow_datasets أثناء download_and_prepare .
  • إذا كان tfds.load(..., try_gcs=True) ، فسيتم دفق مجموعة البيانات مباشرة من GCS (سيتم تخطي download_and_prepare ).

يمكنك التحقق مما إذا كانت مجموعة البيانات مستضافة على المجموعة العامة باستخدام tfds.is_dataset_on_gcs('mnist') .

المصادقة

قبل البدء، عليك أن تقرر كيف تريد المصادقة. هناك ثلاثة خيارات:

  • لا توجد مصادقة (ويعرف أيضًا باسم الوصول المجهول)
  • باستخدام حساب جوجل الخاص بك
  • باستخدام حساب الخدمة (يمكن مشاركته بسهولة مع الآخرين في فريقك)

يمكنك العثور على معلومات تفصيلية في وثائق 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.