ملخص
تدعم مكتبة tensorflow_hub
حاليًا وضعين لتنزيل النماذج. بشكل افتراضي ، يتم تنزيل النموذج كأرشيف مضغوط وتخزينه مؤقتًا على القرص. ثانيًا ، يمكن قراءة النماذج مباشرة من التخزين البعيد إلى TensorFlow. في كلتا الحالتين ، يمكن أن تستمر الاستدعاءات إلى وظائف tensorflow_hub
في كود Python الفعلي ويجب أن تستمر في استخدام عنوان URL الأساسي tfhub.dev عناوين URL للنماذج المحمولة عبر الأنظمة و للملاحة للتوثيق. في الحالة النادرة التي يحتاج فيها رمز المستخدم إلى موقع نظام الملفات الفعلي (بعد التنزيل وفك الضغط ، أو بعد حل مؤشر النموذج في مسار نظام الملفات) ، يمكن الحصول عليه من خلال دالة hub.resolve(handle)
.
التخزين المؤقت للتنزيلات المضغوطة
تخزن مكتبة tensorflow_hub
افتراضيًا النماذج على نظام الملفات عند تنزيلها من tfhub.dev (أو مواقع استضافة أخرى) وفك ضغطها. يوصى بهذا الوضع لمعظم البيئات ، إلا إذا كانت مساحة القرص نادرة ولكن عرض النطاق الترددي للشبكة وزمن الانتقال رائعان.
يتم تعيين موقع التنزيل افتراضيًا إلى دليل مؤقت محلي ولكن يمكن تخصيصه عن طريق تعيين متغير البيئة TFHUB_CACHE_DIR
(موصى به) أو بتمرير علامة سطر الأوامر --tfhub_cache_dir
. يجب أن يعمل موقع ذاكرة التخزين المؤقت الافتراضي /tmp/tfhub_modules
(أو أيًا كان os.path.join(tempfile.gettempdir(), "tfhub_modules")
) في معظم الحالات.
يمكن للمستخدمين الذين يفضلون التخزين المؤقت المستمر عبر عمليات إعادة تمهيد النظام تعيين 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
لقراءة النماذج من حاوية 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)
ملاحظة: شاهد المزيد من المعلومات بخصوص المقابض الصالحة هنا .
وملخص
تدعم مكتبة tensorflow_hub
حاليًا وضعين لتنزيل النماذج. بشكل افتراضي ، يتم تنزيل النموذج كأرشيف مضغوط وتخزينه مؤقتًا على القرص. ثانيًا ، يمكن قراءة النماذج مباشرة من التخزين البعيد إلى TensorFlow. في كلتا الحالتين ، يمكن أن تستمر الاستدعاءات إلى وظائف tensorflow_hub
في كود Python الفعلي ويجب أن تستمر في استخدام عنوان URL الأساسي tfhub.dev عناوين URL للنماذج المحمولة عبر الأنظمة و للملاحة للتوثيق. في الحالة النادرة التي يحتاج فيها رمز المستخدم إلى موقع نظام الملفات الفعلي (بعد التنزيل وفك الضغط ، أو بعد حل مؤشر النموذج في مسار نظام الملفات) ، يمكن الحصول عليه من خلال دالة hub.resolve(handle)
.
التخزين المؤقت للتنزيلات المضغوطة
تخزن مكتبة tensorflow_hub
افتراضيًا النماذج على نظام الملفات عند تنزيلها من tfhub.dev (أو مواقع استضافة أخرى) وفك ضغطها. يوصى بهذا الوضع لمعظم البيئات ، إلا إذا كانت مساحة القرص نادرة ولكن عرض النطاق الترددي للشبكة وزمن الانتقال رائعان.
يتم تعيين موقع التنزيل افتراضيًا إلى دليل مؤقت محلي ولكن يمكن تخصيصه عن طريق تعيين متغير البيئة TFHUB_CACHE_DIR
(موصى به) أو بتمرير علامة سطر الأوامر --tfhub_cache_dir
. يجب أن يعمل موقع ذاكرة التخزين المؤقت الافتراضي /tmp/tfhub_modules
(أو أيًا كان os.path.join(tempfile.gettempdir(), "tfhub_modules")
) في معظم الحالات.
يمكن للمستخدمين الذين يفضلون التخزين المؤقت المستمر عبر عمليات إعادة تمهيد النظام تعيين 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
لقراءة النماذج من حاوية 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)
ملاحظة: شاهد المزيد من المعلومات بخصوص المقابض الصالحة هنا .