TF Hub のモデル形式
TF Hub は TensorFlow プログラムで再読み込み、構築、再トレーニングできる再利用可能なモデル片を提供します。これらのモデル片には 2 種類の形式があります。
- 独自の TF1 Hub 形式。主に TF1(または TF2 の TF1 互換モード)で hub.Module API を介して使用されることを想定したものです。互換性に関する完全な情報は、以下をご覧ください。
- ネイティブな TF2 SavedModel 形式。主に TF2 で hub.load および hub.KerasLayer API を介して使用されることを想定したものです。互換性に関する完全な情報は、以下をご覧ください。
モデル形式は、tfhub.dev のモデルページで確認できます。モデルの読み込み/推論、ファインチューニング、作成は、モデル形式に基づく TF1/2 ではサポートされていない場合があります。
TF1 Hub 形式の互換性
演算 | TF1/ TF2 の TF1 互換モード [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) 注意: 個別の train グラフを必要としないモジュールには train タグがありません。
|
サポートされていません |
作成 | 完全サポート(包括的な TF1 Hub 形式の作成ガイドをご覧ください) 注意: TF1 Hub 形式は TF1 向けであり、TF2 では部分的にのみサポートされています。TF2 SavedModel の作成を検討してください。
|
サポートされていません |
TF2 SavedModel の互換性
TF1.15 以前はサポートされていません。
演算 | TF1.15/ TF2 の TF1 互換モード [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) |
ファインチューニング | Model.fit() でトレーニングされる場合、または カスタム model_fn ガイド に従って Model をラップする model_fn を持つ Estimator でトレーニングされる場合にtf.keras.Model で使用される hub.KerasLayer でサポートされます。 注意: hub.KerasLayer は古い tf.compat.v1.layers または hub.Module API のようにグラフコレクションを埋めません。
|
完全サポート(包括的な 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() は互換モード内から呼び出すことができます。 | 完全サポート(包括的な TF2 SavedModel の作成ガイド をご覧ください) |
[1] "TF2 の TF1 互換モード" とは、TensorFlow 移行ガイドに記載されているように TF2 を import tensorflow.compat.v1 as tf
でインポートして tf.disable_v2_behavior()
を実行する場合の複合効果を指します。