VitisInspector
は浮動小数点モデルを検査し、特定の DPU ターゲット アーキテクチャの分割結果を表示すると共に、レイヤーが DPU にマップされない理由を示します。target
が指定されていない場合、ターゲットに依存しない一般的な検査結果のみが表示されます。target
を指定すると、そのターゲットのより詳細な検査結果が表示されます。 注記: DPU の制限のため、この機能はデフォルトの
pof2s
量子化ストラテジについてのみ使用可能です。次のコードは、モデルを検査する方法を示しています。
model = tf.keras.models.load_model('float_model.h5')
from tensorflow_model_optimization.quantization.keras import vitis_inspect
inspector = vitis_inspect.VitisInspector(target="DPUCADF8H_ISA0")
inspector.inspect_model(model,
plot=True,
plot_file="model.svg",
dump_results=True,
dump_results_file="inspect_results.txt",
verbose=0)
- target
- 文字列または None。このモデルを運用するターゲット DPU。値は名称文字列 (DPUCAHX8L_ISA0)、JSON ファイル パス (./U50/arch.json など) またはフィンガープリントです。None に設定されている場合、ターゲットは適用されず、ターゲットに依存しない一般的な検査結果のみが表示されます。デフォルト値は None です。
- model
-
tf.keras.Model インスタンス。検査する浮動小数点モデルを指定します。モデルには具体的な入力形状が必要です。具体的な入力形状を指定してモデルを構築するか、または
input_shape
引数を指定して inspect_model を呼び出してください。 - input_shape
- list(int) または list(list(int)) または tuple(int) または dictionary(int)。各入力レイヤーの入力形状が含まれます。設定されない場合、入力レイヤー内のデフォルト形状情報を使用します。複数の入力がある場合、たとえば inspect_model(model, input_shape=[1, 224, 224, 3]) または inspect_model(model, input_shape=\[[None, 224, 224, 3], [None, 64, 1]]) のように、形状のリストを使用します。すべての次元に具体的な値が必要です。次元 batch_size は None または int とします。モデルの入力形状が [None, None, None, 3] のような変数の場合、[None, 224, 224, 3] などの形状を指定して最終的な量子化済みモデルを生成する必要があります。デフォルト値は None です。
- plot
-
ブール型。モデルの検査結果を
graphviz
によってプロットし、イメージをディスクに保存するかどうかを指定します。モデルの検査結果を変更のヒントと共に可視化する場合に役に立ちます。注記: ヒントを表示できるのは、.svg
など一部のタイプの出力ファイルのみです。デフォルト値は False です。 - plot_file
- 文字列。モデルをプロットする場合にモデル イメージ ファイルのファイル パスを指定します。デフォルト値は model.svg です。
- dump_results
- ブール型。検査結果をダンプしてテキストをディスクに保存するかどうかを指定します。画面に表示されるログよりも詳細なレイヤーごとの結果が、テキスト ファイルにダンプされます。デフォルト値は False です。
- dump_results_file
- 文字列。検査結果のテキスト ファイルのファイル パス。デフォルト値は inspect_results.txt です。
- verbose
- int。ログの冗長レベル。verbose の値が大きいほど、より詳細な結果ログが表示されます。デフォルト値は 0 です。