Polygraphy 工具介绍

3. Polygraphy 工具介绍#

Polygraphy 是一个用于深度学习模型推理和验证的 Python 工具库,由 NVIDIA 开发者维护。它主要用于模型转换、性能分析和正确性验证,帮助开发者优化和调试。其 surgeon extract 功能可用于便捷的切分 QuantAxmodel 以定位出现问题的最小子图。

此工具可以灵活应用于基于 ONNX 容器格式表达的模型上,比如:ONNX、QuantAxModel、OptimizedAxModel。

3.1. 常用参数#

--inputs INPUT_META [INPUT_META ...]
    子图的输入元数据(名称、形状、数据类型)
    使用 auto 可让 extract 自动推断这些值。
    格式:
    --inputs <名称>:<形状>:<数据类型>
    example:
    --inputs input0:[1,3,224,224]:float32 input1:auto:auto
    如果省略此参数,则默认使用当前模型的输入配置。

--outputs OUTPUT_META [OUTPUT_META ...]
    子图的输出元数据(名称和数据类型)。
    使用 auto 可让 extract 自动推断这些值。
    格式:
    --outputs <名称>:<数据类型>
    example:
    --outputs output0:float32 output1:auto
    如果省略此参数,则默认使用当前模型的输出配置。

-o SAVE_ONNX, --output SAVE_ONNX
    截取后的子图 onnx 保存路径

3.2. 快速开始#

polygraphy surgeon extract output/quant/quant_axmodel.onnx \
    --inputs your_inputs1:auto:auto your_inputs2:auto:auto \
    --outputs your_outputs1:auto:auto your_outputs2:auto:auto \
    -o output_quant_axmodel.onnx