سازگاری مدل برای 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 توضیح داده شده است اشاره دارد.