سازگاری مدل برای TF1/TF2

فرمت های مدل TF Hub

TF Hub قطعات مدل قابل استفاده مجدد را ارائه می دهد که می توانند دوباره بارگذاری شوند، بر روی آنها ساخته شده و احتمالاً در یک برنامه TensorFlow دوباره آموزش داده شوند. اینها در دو فرمت مختلف می آیند:

قالب مدل را می توان در صفحه مدل در 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)
یا hub.KerasLayer
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)
یا hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
استفاده کنید
به طور کامل پشتیبانی می شود ( راهنمای بارگیری کامل TF2 SavedModel ). از hub.load
m = hub.load(handle)
outputs = m(inputs)
یا hub.KerasLayer
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)
یا hub.KerasLayer:
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 توضیح داده شده است اشاره دارد.