浮動小数点モデルの検査 - 3.5 日本語

Vitis AI ユーザー ガイド (UG1414)

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 日本語
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 です。