(可选)转储仿真结果 - 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
string。表示转储结果的保存目录。成功执行此函数后,会在 output_dir 中生成转储结果。
dump_float
Boolean。用于判定是否转储权重和激活结果的浮点值。
注释: dump_data_reader 的 batch_size 应设为 1 以便进行 DPU 调试。

成功执行此命令后,会在 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