تنزيلات نموذج التخزين المؤقت من TF Hub

ملخص

tensorflow_hub مكتبة tensorflow_hub حاليًا وضعين لتنزيل النماذج. بشكل افتراضي ، يتم تنزيل النموذج كأرشيف مضغوط وتخزينه مؤقتًا على القرص. ثانيًا ، يمكن قراءة النماذج مباشرة من التخزين البعيد إلى TensorFlow. في كلتا الحالتين ، يمكن أن تستمر tensorflow_hub لوظائف tensorflow_hub في كود Python الفعلي ويجب أن تستمر في استخدام tfhub.dev عناوين URL للنماذج المحمولة عبر الأنظمة ويمكن التنقل فيها للتوثيق. في الحالة النادرة التي يحتاج فيها رمز المستخدم إلى موقع نظام الملفات الفعلي (بعد التنزيل وفك الضغط ، أو بعد حل مؤشر النموذج في مسار نظام الملفات) ، يمكن الحصول عليه من خلال دالةhub.resolve(handle) .

التخزين المؤقت للتنزيلات المضغوطة

tensorflow_hub مكتبة tensorflow_hub افتراضيًا النماذج على نظام الملفات مؤقتًا عند تنزيلها من tfhub.dev (أو مواقع استضافة أخرى) وفك ضغطها. يوصى بهذا الوضع لمعظم البيئات ، إلا إذا كانت مساحة القرص نادرة ولكن عرض النطاق الترددي للشبكة وزمن الانتقال رائعان.

يتم تعيين موقع التنزيل افتراضيًا إلى دليل مؤقت محلي ولكن يمكن تخصيصه عن طريق تعيين متغير البيئة TFHUB_CACHE_DIR (موصى به) أو بتمرير علامة سطر الأوامر --tfhub_cache_dir . يجب أن يعمل موقع ذاكرة التخزين المؤقت الافتراضي /tmp/tfhub_modules (أو أيًا كان os.path.join(tempfile.gettempdir(), "tfhub_modules") ) في معظم الحالات.

يمكن للمستخدمين الذين يفضلون التخزين المؤقت المستمر عبر عمليات إعادة تمهيد النظام تعيين TFHUB_CACHE_DIR بدلاً من ذلك إلى موقع في TFHUB_CACHE_DIR الرئيسي. على سبيل المثال ، يمكن لمستخدم bash shell على نظام Linux إضافة سطر مثل التالي إلى ~/.bashrc

export TFHUB_CACHE_DIR=$HOME/.cache/tfhub_modules

... أعد تشغيل القشرة ، وبعد ذلك سيتم استخدام هذا الموقع. عند استخدام موقع ثابت ، انتبه إلى عدم وجود تنظيف تلقائي.

القراءة من التخزين البعيد

يمكن للمستخدمين توجيه مكتبة tensorflow_hub لقراءة النماذج مباشرة من التخزين البعيد (GCS) بدلاً من تنزيل النماذج محليًا باستخدام

os.environ["TFHUB_MODEL_LOAD_FORMAT"] = "UNCOMPRESSED"

أو عن طريق تعيين علامة سطر الأوامر --tfhub_model_load_format إلى " UNCOMPRESSED . بهذه الطريقة ، لا توجد حاجة إلى دليل التخزين المؤقت ، وهو مفيد بشكل خاص في البيئات التي توفر مساحة صغيرة على القرص ولكن توفر اتصالاً سريعًا بالإنترنت.

يعمل على TPU في أجهزة الكمبيوتر المحمولة Colab

على colab.research.google.com ، سيتعارض تنزيل النماذج المضغوطة مع وقت تشغيل TPU نظرًا لأن حمل عمل الحساب يتم تفويضه إلى جهاز آخر ليس لديه حق الوصول إلى موقع ذاكرة التخزين المؤقت افتراضيًا. هناك نوعان من الحلول لهذا الموقف:

1) استخدم دلو GCS الذي يمكن لعامل TPU الوصول إليه

الحل الأسهل هو توجيه مكتبة tensorflow_hub لقراءة النماذج من tensorflow_hub GCS الخاصة بـ TF Hub كما هو موضح أعلاه. يمكن للمستخدمين الذين لديهم حاوية GCS الخاصة بهم بدلاً من ذلك تحديد دليل في المجموعة الخاصة بهم كموقع ذاكرة التخزين المؤقت مع رمز مثل

import os
os.environ["TFHUB_CACHE_DIR"] = "gs://my-bucket/tfhub-modules-cache"

... قبل استدعاء مكتبة tensorflow_hub .

2) أعد توجيه كل القراءات من خلال مضيف Colab

حل آخر هو إعادة توجيه جميع القراءات (حتى للمتغيرات الكبيرة) من خلال مضيف Colab:

load_options =
tf.saved_model.LoadOptions(experimental_io_device='/job:localhost')
reloaded_model = hub.load("https://tfhub.dev/...", options=load_options)