VitisQuantizer.dump_model
API を使用して、量子化モデルのシミュレーション結果をダンプできます。from tensorflow_model_optimization.quantization.keras import vitis_quantize
quantized_model = keras.models.load_model('./quantized_model.h5') vitis_quantize.VitisQuantizer.dump_model(model=quantized_model,
dataset=dump_dataset,
output_dir='./dump_results')
batch_size
をターゲット デバイスの batch_size と同じ値に設定する必要があります。GPU のシミュレーション結果は非確定的となる可能性があり、浮動小数点値の計算では結果が多少異なることがあるため、DPU のデバッグには CPU のシミュレーション結果を使用することを推奨します。コマンドが正常に実行された後、ダンプ結果が ${dump_output_dir} に生成されます。各レイヤーの重みとアクティベーションの結果は、個別にフォルダーに保存されます。量子化されたレイヤーごとに、結果が *.bin および *.txt 形式で保存されます。レイヤーの出力が量子化されない場合は (softmax レイヤーの場合など)、浮動小数点モデルのアクティベーション結果が *_float.bin および *_float.txt ファイルに保存されます。記号「/」は、「_」に置き換えられてシンプルになります。ダンプ結果の例を次の表に示します。
バッチ番号 | 量子化 | レイヤー名 | 保存されたファイル | ||
---|---|---|---|---|---|
重み | バイアス | アクティベーション | |||
1 | あり | resnet_v1_50/conv1 |
{output_dir}/dump_results_weights/quant_resnet_v1_50_conv1_kernel.bin {output_dir}/dump_results_weights/quant_resnet_v1_50_conv1_kernel.txt |
{output_dir}/dump_results_weights/quant_resnet_v1_50_conv1_bias.bin {output_dir}/dump_results_weights/quant_resnet_v1_50_conv1_bias.txt |
{output_dir}/dump_results_0/quant_resnet_v1_50_conv1.bin {output_dir}/dump_results_0/quant_resnet_v1_50_conv1.txt |
2 | 否 | resnet_v1_50/softmax | N/A | N/A |
{output_dir}/dump_results_0/quant_resnet_v1_50_softmax_float.bin {output_dir}/dump_results_0/quant_resnet_v1_50_softmax_float.txt |