يمكن استخدام 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.