简介

模型评估脚本用于评估onnx模型网络中算子类型、内存占用和编译后模型大小。由于芯片在逻辑上有其特殊的处理,该脚本能方便用户更加准确地进行模型前期的分析处理。

使用前准备

环境检查

表 1 软件要求

名称

版本号

python

python3.7.x~python3.11.x

onnx

1.8.0~1.14.0

numpy

>=1.13.3 (onnx 1.14.0配套1.21.6~1.26.4)

限制约束

  • 用户提供的onnx浮点模型能推导得到中间tensor信息,如shape、dtype等。

  • 工具评估时不考虑融合规则影响。

  • 工具评估时不考虑常量折叠。

  • 涉及fifo轮转算子时,仅考虑gru/lstm的额外空间占用。

使用步骤

  1. 在Linux上准备评估脚本onnx_estimate.py,内容见附件onnx_estimate.rar

  2. 将待评估的onnx模型拷贝到Linux某个目录下。

  3. 在Linux上执行评估脚本。

    # -m/--onnx_model表示待评估模型路径
    # -p/--print_enable表示是否打印各层详细信息,加上-p参数则打印,否则不打印
    python3 onnx_estimate.py -m/--onnx_model estimate_model_path -p/--print_enable
    
  4. 查看评估结果

    参数项

    描述

    TOTAL_WEIGHT_SIZE

    预估模型的权重大小

    TOTAL_MEM_SIZE

    预估模型执行时的内存占用

    TOTAL_EXEOM_SIZE

    预估编译后模型文件大小

    TOTAL_NET_OP_TYPE

    浮点模型中包含的算子类型

    NOT_SUPPORT_OP_TYPE

    NPU在评估模型中不支持的类型(不保证精度)