این سند قراردادهای URL مورد استفاده در هنگام میزبانی انواع مدلها در tfhub.dev - مدلهای TFJS، TF Lite و TensorFlow را شرح میدهد. همچنین پروتکل مبتنی بر HTTP(S) را که توسط کتابخانه tensorflow_hub
به منظور بارگذاری مدلهای TensorFlow از tfhub.dev و سرویسهای سازگار در برنامههای TensorFlow پیادهسازی شده است، توصیف میکند.
ویژگی کلیدی آن استفاده از همان URL در کد برای بارگذاری یک مدل و در مرورگر برای مشاهده مستندات مدل است.
قراردادهای عمومی URL
tfhub.dev از فرمت های URL زیر پشتیبانی می کند:
- ناشران TF Hub
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
را دنبال می کنند - مجموعههای TF Hub
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
دنبال میکنند - مدلهای TF Hub دارای URL نسخهدار
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>
و آدرس اینترنتی بدون نسخه<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>
که به آخرین نسخه مدل حل می شود.
مدل های TF Hub را می توان با افزودن پارامترهای URL به URL مدل tfhub.dev به عنوان دارایی های فشرده بارگیری کرد. با این حال، پارامترهای URL مورد نیاز برای دستیابی به آن به نوع مدل بستگی دارد:
- مدل های TensorFlow (هر دو فرمت SavedModel و TF1 Hub):
?tf-hub-format=compressed
به آدرس اینترنتی مدل TensorFlow اضافه کنید. - مدلهای TFJS:
?tfjs-format=compressed
به آدرس اینترنتی مدل TFJS اضافه کنید تا فایل فشرده یا/model.json?tfjs-format=file
را دانلود کنید تا اگر از حافظه راه دور خوانده شود. - مدلهای TF Lite:
?lite-format=tflite
به آدرس اینترنتی مدل TF Lite اضافه کنید.
به عنوان مثال:
تایپ کنید | URL مدل | نوع دانلود | پارامتر URL | دانلود URL |
TensorFlow (SavedModel، قالب TF1 Hub) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=فشرده شده | https://tfhub.dev/google/spice/2?tf-hub-format=compressed |
TF Lite | https://tfhub.dev/google/lite-model/spice/1 | tflite | ?lite-format=tflite | https://tfhub.dev/google/lite-model/spice/1?lite-format=tflite |
TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .tar.gz | ?tfjs-format=compressed | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
علاوه بر این، برخی از مدلها نیز در قالبی میزبانی میشوند که میتوان آن را مستقیماً از حافظه راه دور بدون بارگیری خواند. این به ویژه در صورتی مفید است که فضای ذخیره سازی محلی در دسترس نباشد، مانند اجرای یک مدل TF.js در مرورگر یا بارگیری SavedModel در Colab . توجه داشته باشید که خواندن مدل هایی که از راه دور بدون بارگیری محلی میزبانی می شوند ممکن است تاخیر را افزایش دهند.
تایپ کنید | URL مدل | نوع پاسخ | پارامتر URL | درخواست URL |
TensorFlow (SavedModel، قالب TF1 Hub) | https://tfhub.dev/google/spice/2 | رشته (مسیری به پوشه GCS که مدل فشرده نشده در آن ذخیره می شود) | ?tf-hub-format=غیر فشرده | https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed |
TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .json | ?tfjs-format=file | https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file |
پروتکل کتابخانه tensorflow_hub
این بخش نحوه میزبانی مدل ها را در tfhub.dev برای استفاده با کتابخانه tensorflow_hub توضیح می دهد. اگر می خواهید مخزن مدل خود را میزبانی کنید تا با کتابخانه tensorflow_hub کار کند، سرویس توزیع HTTP(های) شما باید پیاده سازی این پروتکل را ارائه دهد.
توجه داشته باشید که این بخش به مدلهای میزبانی TF Lite و TFJS نمیپردازد زیرا از طریق کتابخانه tensorflow_hub
دانلود نمیشوند. برای اطلاعات بیشتر در مورد میزبانی این انواع مدل، لطفاً بالا را بررسی کنید.
میزبانی فشرده
مدل ها در tfhub.dev به عنوان فایل های فشرده tar.gz ذخیره می شوند. به طور پیش فرض، کتابخانه tensorflow_hub به طور خودکار مدل فشرده شده را دانلود می کند. همچنین میتوان آنها را به صورت دستی با افزودن ?tf-hub-format=compressed
به نشانی اینترنتی مدل دانلود کرد، برای مثال:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
ریشه آرشیو ریشه دایرکتوری مدل است و باید حاوی SavedModel باشد، مانند این مثال:
# Create a compressed model from a SavedModel directory.
$ tar -cz -f model.tar.gz --owner=0 --group=0 -C /tmp/export-model/ .
# Inspect files inside a compressed model
$ tar -tf model.tar.gz
./
./variables/
./variables/variables.data-00000-of-00001
./variables/variables.index
./assets/
./saved_model.pb
تاربالها برای استفاده با قالب قدیمی TF1 Hub نیز حاوی یک فایل ./tfhub_module.pb
هستند.
هنگامی که یکی از APIهای بارگیری مدل کتابخانه tensorflow_hub
فراخوانی می شود ( hub.KerasLayer ، hub.load و غیره)، کتابخانه مدل را دانلود می کند، مدل را از حالت فشرده خارج می کند و آن را به صورت محلی ذخیره می کند. کتابخانه tensorflow_hub
انتظار دارد که URL های مدل نسخه بندی شده و محتوای مدل یک نسخه معین تغییرناپذیر باشد، به طوری که می توان آن را به طور نامحدود در حافظه پنهان کرد. درباره مدل های حافظه پنهان بیشتر بدانید.
هاست غیر فشرده
هنگامی که متغیر محیطی TFHUB_MODEL_LOAD_FORMAT
یا پرچم خط فرمان --tfhub_model_load_format
روی UNCOMPRESSED
تنظیم می شود، مدل به جای دانلود و غیرفشرده شدن به صورت محلی، مستقیماً از حافظه راه دور (GCS) خوانده می شود. وقتی این رفتار فعال است، کتابخانه ?tf-hub-format=uncompressed
به URL مدل اضافه می کند. این درخواست مسیر را به پوشه ای در GCS برمی گرداند که حاوی فایل های مدل فشرده نشده است. به عنوان نمونه،
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
برمی گرداند
gs://tfhub-modules/google/spice/2/uncompressed
در بدنه پاسخ 303. سپس کتابخانه مدل را از آن مقصد GCS می خواند.