فرمت های مدل TF Hub
TF Hub قطعات مدل قابل استفاده مجدد را ارائه می دهد که می توانند دوباره بارگذاری شوند، بر روی آنها ساخته شده و احتمالاً در یک برنامه TensorFlow دوباره آموزش داده شوند. این ها در دو فرمت مختلف می آیند:
- قالب سفارشی TF1 Hub . کاربرد اصلی آن در TF1 (یا حالت سازگاری TF1 در TF2) از طریق Hub.Module API آن است. جزئیات سازگاری کامل در زیر .
- قالب اصلی TF2 SavedModel . کاربرد اصلی آن در TF2 از طریق API های hub.load و hub.KerasLayer است. جزئیات سازگاری کامل در زیر .
قالب مدل را می توان در صفحه مدل در tfhub.dev یافت. بارگیری/استنتاج مدل، تنظیم دقیق یا ایجاد ممکن است در TF1/2 بر اساس قالبهای مدل پشتیبانی نشود.
سازگاری با فرمت TF1 Hub
عملیات | حالت سازگار TF1/TF1 در TF2 [1] | TF2 |
در حال بارگذاری / استنباط | به طور کامل پشتیبانی می شود ( راهنمای بارگیری فرمت TF1 Hub کامل ) m = hub.Module(handle)
outputs = m(inputs) | توصیه می شود از هر یک از hub.load استفاده کنیدm = hub.load(handle)
outputs = m.signatures["sig"](inputs) m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs) |
تنظیم دقیق | به طور کامل پشتیبانی می شود ( راهنمای کامل تنظیم فرمت TF1 Hub ) m = hub.Module(handle,
trainable=True,
tags=["train"]*is_training)
outputs = m(inputs) توجه: ماژول هایی که به گراف قطار جداگانه نیاز ندارند، برچسب قطار ندارند. | پشتیبانی نمی شود |
خلقت | به طور کامل پشتیبانی می شود (به راهنمای کامل ایجاد قالب TF1 Hub مراجعه کنید) توجه: فرمت TF1 Hub برای TF1 طراحی شده است و فقط تا حدی در TF2 پشتیبانی می شود. ایجاد یک TF2 SavedModel را در نظر بگیرید. | پشتیبانی نمی شود |
سازگاری TF2 SavedModel
قبل از TF1.15 پشتیبانی نمی شود.
عملیات | حالت سازگار TF1.15/TF1 در TF2 [1] | TF2 |
در حال بارگذاری / استنباط | از هر یک از hub.load استفاده کنیدm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) | به طور کامل پشتیبانی می شود ( راهنمای بارگیری کامل TF2 SavedModel ). از هر یک از hub.load استفاده کنیدm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) |
تنظیم دقیق | پشتیبانی از hub.KerasLayer که در tf.keras.Model زمانی که با Model.fit() آموزش داده میشود یا در برآوردگر آموزش داده میشود که model_fn مدل را طبق راهنمای model_fn سفارشی میپیچد. توجه: hub.KerasLayer مانند APIهای tf.compat.v1.layers قدیمی یا hub.Module مجموعههای نمودار را پر نمیکند . | به طور کامل پشتیبانی می شود ( راهنمای تنظیم دقیق TF2 SavedModel ). از هر یک از hub.load استفاده کنید:m = hub.load(handle)
outputs = m(inputs, training=is_training) m = hub.KerasLayer(handle, trainable=True)
outputs = m(inputs) |
خلقت | TF2 API tf.saved_model.save() را می توان از داخل حالت compat فراخوانی کرد. | به طور کامل پشتیبانی می شود (به راهنمای کامل ایجاد TF2 SavedModel مراجعه کنید) |
[1] "حالت سازگار TF1 در TF2" به اثر ترکیبی وارد کردن TF2 با import tensorflow.compat.v1 as tf
و اجرای tf.disable_v2_behavior()
همانطور که در راهنمای TensorFlow Migration توضیح داده شده است اشاره دارد.