HiSpark AI

- 软件资料
  - AMCT模型压缩工具用户指南
    - 学习向导
    - 概述
    - 准备环境
    - 快速入门
    - AMCT（PyTorch）
    - AMCT（ONNX）
    - AMCT（TensorFlow）(不支持)
    - AMCT（Caffe）(不支持)
    - 命令行参数说明
    - 样例列表
    - FAQ
    - 附录
  - ATC离线模型编译工具用户指南
    - 学习向导
    - ATC简介
    - 准备环境
    - 快速入门
    - 初级功能
    - 高级功能
    - 参数说明
    - 专题
    - 参考
    - FAQ
  - HiSpark Studio AI for VS Code使用指南
    - 前言
    - HiSpark Studio AI简介
    - 数据准备与环境搭建
    - Hi3863操作指南
    - Hi3322操作指南
  - HiSpark.AI API开发指南
    - 前言
    - 简介
    - 接口调用流程介绍
    - HiSpark.AI API参考
    - 样例使用指导
    - FAQ
  - HiSpark.AI 快速入门指南
    - 前言
    - 简介
    - 开发板准备
    - 开发环境准备
    - 样例运行
    - 常见错误
  - HiSpark.AI 转换工具使用指南
    - 前言
    - Converter_lite工具使用环境搭建
    - 快速入门
    - 基础知识
    - 初级功能
    - 参数说明
    - 算子规格参考
    - 专题
  - Nano AI应用开发指导书
    - Nano AI应用界面
    - Nano 芯片支持数据类型和典型模型性能
    - Nano AI资料清单
    - Nano AI应用开发流程
    - FAQ
  - 应用开发指南
    - 简介
    - 准备环境
    - 编程接口与调用流程
    - 初始化与去初始化
    - 运行时资源管理
    - 模型管理
    - 更多特性
    - 应用编译&运行
    - 精度/性能优化
    - acl API参考
    - FAQ案例集
    - 附录
  - 开发环境安装指南
    - 简介
    - 获取软件包
    - 安装前准备
    - 安装
    - 常用操作
    - FAQ
    - 附录
    - Compiler的库文件存在路径
  - 术语和缩略语
    - 术语和缩略语
  - 模型评估脚本使用指南
    - 简介
    - 使用前准备
    - 使用步骤
  - 精度调试工具用户指南
    - 简介
    - 使用前准备
    - GPU vs NPU（TensorFlow离线推理）-IPV350不支持
    - GPU vs NPU（ONNX离线推理）-IPV350不支持
    - NPU vs NPU（离线推理）
    - 比对结果说明
    - 比对结果分析
    - 扩展功能
    - 附录
  - 驱动日志说明文档
    - 简介
    - 日志分类
    - 异常场景
    - 典型案例

### 该页内容

- 简介
- 使用前准备
  - 环境检查
  - 限制约束
- 使用步骤

# 简介

模型评估脚本用于评估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在评估模型中不支持的类型（不保证精度）