(オプション) シミュレーション結果のダンプ - 3.5 日本語

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

Document ID
UG1414
Release Date
2023-09-28
Version
3.5 日本語

場合によっては、量子化されたモデルの運用後に、CPU/GPU 上のシミュレーション結果と DPU 上の出力値を比較することが重要になります。

vai_q_onnx の dump_model API を使用して、quantized_model でシミュレーション結果をダンプできます。

import vai_q_onnx
# This function dumps the simulation results of the quantized model,
# including weights and activation results.
vai_q_onnx.dump_model(
    model,
    dump_data_reader=None,
    output_dir='./dump_results',
    dump_float=False)
model
量子化されたモデルのファイル パス。
dump_data_reader
ダンプするために使用されるデータ リーダー。オリジナル モデルへの入力を生成。
output_dir
文字列。ダンプ結果を保存するディレクトリ。関数が正常に実行された後、ダンプ結果が output_dir に生成される。
dump_float
ブール型。重みとアクティベーション結果の浮動小数点値をダンプするかどうかを判定します。
注記: DPU のデバッグの場合、dump_data_reader の batch_size を 1 に設定します。

上記のコマンドが正常に実行されると、output_dir にダンプ結果が生成されます。量子化された各ノードの重みとアクティベーション結果は *.bin 形式と *.txt 形式で別々に保存されます。

ノードの出力が量子化されない場合は (softmax ノードの場合など)、浮動小数点モデルのアクティベーション結果が *_float.bin および *_float.txt 形式で保存されます (オプション save_float が True の場合)。

次の表に、ダンプ結果の例を示します。

表 1. ダンプ結果の例
バッチ番号 量子化 ノード名 保存されたファイル
1 あり resnet_v1_50_conv1

{output_dir}/dump_results/quant_resnet_v1_50_conv1.bin

{output_dir}/dump_results/quant_resnet_v1_50_conv1.txt

2 あり resnet_v1_50_conv1_weights

{output_dir}/dump_results/quant_resnet_v1_50_conv1_weights.bin

{output_dir}/dump_results/quant_resnet_v1_50_conv1_weights.txt

2 なし resnet_v1_50_softmax

{output_dir}/dump_results/quant_resnet_v1_50_softmax_float.bin

{output_dir}/dump_results/quant_resnet_v1_50_softmax_float.txt