HiSpark编程指南

- 工具资料
  - HiSpark AI 快速入门指南
    - 前言
    - 简介
    - 开发板准备
    - 开发环境准备
    - 样例运行
  - HiSpark Studio AI for VS Code使用指南
  - HiSpark Studio for VS Code使用指南
    - 前言
    - 工具简介
    - 开发环境搭建
    - 工程管理
    - 工程配置
    - 编译运行
    - 软件包烧录
    - 栈分析和镜像分析
    - 工程调试
    - 远程开发工具
    - 串口控制台工具
    - Kconfig配置
    - GUI工程创建与使用
    - 高阶分析功能使用
    - 常见错误

### 该页内容

- 前言
- 简介
- 开发板准备
- 开发环境准备
  - HiSpark Studio AI准备
    - 插件安装
    - 环境配置
  - Hi3863环境准备
    - Linux服务器端AI环境准备
      - 基础版环境准备
    - Windows侧环境准备
    - 准备SDK
  - Hi3322环境准备
    - Linux服务器端AI环境准备
      - 基础版环境准备
      - GPU加速版环境准备
    - Windows侧Bash环境准备
    - 准备SDK
- 样例运行
  - Hi3863样例运行
    - 模型与数据获取
    - 新建工程与模型导入
    - 模型压缩
    - 模型转换
    - 模型部署
    - 性能评估和精度评估
    - 应用开发
  - Hi3322样例运行
    - 模型与数据获取
    - 新建工程与模型导入
    - 模型压缩
      - 训练后量化
      - 量化感知训练
    - 模型转换
    - 模型部署
    - 性能评估和精度评估
    - 应用开发

# 前言

概述

本文档主要描述HiSpark Studio AI for VS Code插件的安装及使用。该工具主要用于模型压缩、模型转换、应用开发、端侧部署、性能调优等。

读者对象

本文档主要适用于基于海思芯片进行嵌入式开发的相关人员：

- 软件开发工程师

- 技术支持工程师

- 硬件开发工程师

- 嵌入式爱好者

符号约定

在本文中可能出现下列标志，它们所代表的含义如下。

符号 | 说明
--- | ---
| 表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。
| 表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。
| 表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。
| 用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。 “须知”不涉及人身伤害。
| 对正文中重点信息的补充说明。 “说明”不是安全警示信息，不涉及人身、设备及环境伤害信息。

修改记录

文档版本 | 发布日期 | 修改说明
--- | --- | ---
01 | 2026-01-26 | 第一次正式版本发布。

# 简介

HiSpark Studio AI是面向开发者提供的超轻量级AI应用开发平台，具备高集成、高专业、高易用等特征，聚焦嵌入式AI应用场景，提供模型压缩、模型转换、应用开发、端侧部署、性能调优的全流程开发平台。

# 开发板准备

目前支持Hi3863以及Hi3322两款芯片，需要提前准备单板资源。

# 开发环境准备

## HiSpark Studio AI准备

### 插件安装

从VS Code插件市场中安装插件：

- 安装HiSpark Studio插件

  图 1 HiSpark Studio插件

- 安装HiSpark Studio AI插件

  图 2 HiSpark Studio AI插件

### 环境配置

1. 进入HiSpark Studio AI页面，点击“Download Toolchain”按钮。

   图 1 Download Toolchain

   出现如图2所示界面，即表示一键下载工具链已完成。

   图 2 下载成功提示

2. 将用户通过点击“Download Toolchain”下载环境中cmake路径配置到环境变量，路径如下：D:\xxxxxx\tools\python\Scripts

## Hi3863环境准备

整个CPU侧环境准备步骤大致如图1所示。

图 1 CPU环境准备

### Linux服务器端AI环境准备

使用Dockerfile准备Linux服务器端AI环境。环境安装前需要从发布包获取Dockerfile文件、MSLite安装包，并将其放置在同级目录下。

Dockerfile包括Dockerfile_mslite。Dockerfile_mslite为基础版环境准备配置文件。

环境安装前，请先检查目录下是否包含如下文件：

    .
    ├── Dockerfile_mslite
    └── HiSpark.AI_xx.xx.xx-mindspore-enterprise-lite-xx.xx.xx-linux-x64.tar.gz

> 须知：

> 1. 请勿将多个不同版本的MSLite包放置于该目录下。

> 2. 请保持Linux服务器网络畅通。

#### 基础版环境准备

基础版环境准备前，请先保证Linux服务器安装Docker。

基础版环境准备步骤如下：

1. 执行如下命令构建Docker镜像：

       docker build -f Dockerfile_mslite -t {镜像名称}:{镜像标签} .

   如需要配置代理，请执行如下命令：

       docker build -f Dockerfile_mslite --build-arg http_proxy={http代理地址} --build-arg https_proxy={https代理地址} --build-arg no_proxy={排除代理地址} -t {镜像名称}:{镜像标签} .

   如果打印如下类似信息，表示Docker构建成功。

       Successfully built xxx
       Successfully tagged xxx

2. 执行如下命令运行容器，并关联端口及挂载文件夹：

       docker run -itd --ipc=host -p {服务器端口}:22 -v {服务器路径}:{容器路径} --name {容器名称} {镜像名称}:{镜像标签}

   其中：

   - --ipc=host：可选，配置后容器共享宿主机的内存。

   - -p参数：表示将服务器对应端口映射到容器的[服务器端口}:22端口。

   - -v参数：表示将服务器相应路径映射到容器内的相应路径。该参数为可选参数。

3. 执行如下命令启动容器：

       docker start {容器名称}

   使用如下指令查询运行的容器，如果查询的表格中包含启动的容器，则表示启动成功。

       docker ps

4. 配置容器root密码。

   1. 使用如下命令进入容器：

          docker exec -it {容器名称} /bin/bash

   2. 配置密码：

          passwd

5. 执行如下命令测试ssh连接。按照提示输入root密码，能够顺利进入容器，则表示ssh连接正常。

       ssh root@{服务器IP地址} -p {服务器端口}

> 说明： 由于镜像构建过程中使用的镜像源由基础镜像Ubuntu XX.XX决定，请用户根据基础镜像决定是否更换镜像源。更换镜像源可参考以下示例：

下述示例中，设置了http://mirrors.aliyun.com为镜像源，该镜像源并不一定适用所有的环境，请用户选择适合的镜像源进行替换。

     #!/bin/bash
     # Mirror source configuration

     # The following configuration of mirror sources is for reference only.
     # You need to configure proper mirror sources based on your environment requirements.
     # Configure the image source according to the following example to ensure that the software package can be downloaded during image construction.

     ############## Modify the following information as required .##################
     # cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
     # sed -i "s@http://.*archive.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
     # sed -i "s@http://.*security.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
     # mkdir -p /root/.pip/
     # echo '[global]' >> /root/.pip/pip.conf
     # echo 'trusted-host=mirrors.aliyun.com' >> /root/.pip/pip.conf
     # echo 'index-url=http://mirrors.aliyun.com/pypi/simple' >> /root/.pip/pip.conf

### Windows侧环境准备

1. 将cmake以及ninja依赖配置到环境变量

   找到下载工具链中cmake、ninja等的路径，添加至环境变量并置顶。toolchain_path为用户自定义下载的路径。

       ${toolchain_path}\Windows\cc_riscv32_win_env
       ${toolchain_path}\Windows\ninja
       ${toolchain_path}\Windows\cc_riscv32_msul_win\bin

   图 1 依赖工具包

2. 解压MindSpore安装包到本地

   图 2 MindSpore安装包

3. 配置config.json

   打开“C:\Users\用户名\.vscode\extensions\hispark.hisparkai-x.x.x\resources\config.json”。

   CPU相关的字段：mindspore。

   将mindspore字段对应的路径替换为本地安装路径。

       {
           "mindspore": "xxx"
       }

### 准备SDK

1. 取Hi3863对应SDK发布包，解压SDK包到本地目录。

2. 解压HiSpark.AI组件包并合入到SDK对应目录。

   将组件包中的“HiSpark.AI_xx.xx.x.xxxx-samples.tar.gz”包解压，将ai_samples一级目录放置到SDK中“application/samples”下，目录结构如下所示：

       application/samples
       ├─ai_samples
       │  ├─amct
       │  └─oh
       │      ├─gru
       │      │  ├─model
       │      │  ├─scripts
       │      │  └─src
       │      └─lenet5
       │          ├─data
       │          ├─model
       │          ├─scripts
       │          └─src
       │-- ......

   将组件包中的“HiSpark.AI_xx.xx.x.xxxx-adaptor.tar.gz”包解压，将adaptor以及include一级目录放置到SDK中“middleware/utils/ai_mcu”下，目录结构如下所示：

       middleware/utils/ai_mcu
       ├─adaptor
       │  ├─cpu
       │  │  ├─dump
       │  │  └─include
       │  └─npu
       └─include

## Hi3322环境准备

整个NPU侧环境准备步骤大致如图1所示。

图 1 NPU环境准备

### Linux服务器端AI环境准备

使用Dockerfile准备Linux服务器端AI环境。环境安装前需要从发布包获取Dockerfile文件、ATC安装包、AMCT安装包，并将其放置在同级目录下。

Dockerfile包括Dockerfile_cann_cpu和Dockerfile_cann_gpu。其中Dockerfile_cann_cpu为基础版环境准备配置文件；Dockerfile_cann_gpu为GPU加速版环境准备配置文件。GPU可以加速量化感知训练的效率。

环境安装前，请先检查目录下是否包含如下文件：

    .
    ├── CANN-amct-{版本号}-linux.x86_64.tar.gz
    ├── CANN-compiler-{版本号}-linux.x86_64.run
    ├── CANN-opp-{版本号}-linux.x86_64.run
    ├── CANN-runtime-{版本号}-linux.x86_64.run
    ├── CANN-toolkit-{版本号}-linux.x86_64.run
    └── Dockerfile_cann_cpu或Dockerfile_cann_gpu

> 须知：

> 1. 请勿将多个不同版本的ATC和AMCT安装包放置于该目录下。

> 2. 请保持Linux服务器网络畅通。

#### 基础版环境准备

基础版环境准备前，请先保证Linux服务器安装Docker。

基础版环境准备步骤如下：

1. 执行如下命令构建Docker镜像：

       docker build -f Dockerfile_cann_cpu -t {镜像名称}:{镜像标签} .

   如需要配置代理，请执行如下命令：

       docker build -f Dockerfile_cann_cpu --build-arg http_proxy={http代理地址} --build-arg https_proxy={https代理地址} --build-arg no_proxy={排除代理地址} -t {镜像名称}:{镜像标签} .

   如果打印如下类似信息，表示Docker构建成功。

       Successfully built 61bc7fae9f9e
       Successfully tagged {镜像名称}:{镜像标签}

2. 执行如下命令运行容器，并关联端口及挂载文件夹：

       docker run -itd -p {服务器端口}:22 -v {服务器路径}:{容器路径} --name {容器名称} {镜像名称}:{镜像标签}

   其中：

   - -p参数：表示将服务器对应端口映射到容器的{服务器端口}:22端口。

   - -v参数：表示将服务器相应路径映射到容器内的相应路径。该参数为可选参数。

3. 执行如下命令启动容器：

       docker start {容器名称}

   使用如下指令查询运行的容器，如果查询的表格中包含启动的容器，则表示启动成功。

       docker ps

4. 配置容器root密码。

   - 使用如下命令进入容器：

         docker exec -it {容器名称} /bin/bash

   - 配置密码：

         passwd

5. 执行如下命令测试ssh连接。按照提示输入root密码，能够顺利进入容器，则表示ssh连接正常。

       ssh root@{服务器IP地址} -p {服务器端口}

> 说明： 如遇到镜像代理未配置的网络问题，请参考“基础版环境准备”中的说明完成代理配置。

#### GPU加速版环境准备

GPU加速版环境准备前，请先保证Linux服务器：

1. 安装Docker。

2. 安装GPU驱动；并保证版本号≥525。

3. 安装和配置NVIDIA Container Toolkit。

GPU加速版环境准备步骤如下：

1. 执行如下命令构建Docker镜像：

       docker build -f Dockerfile_cann_gpu -t {镜像名称}:{镜像标签} .

   如需要配置代理，请执行如下命令：

       docker build -f Dockerfile_cann_gpu --build-arg http_proxy={http代理地址} --build-arg https_proxy={https代理地址} --build-arg no_proxy={排除代理地址} -t {镜像名称}:{镜像标签} .

   如果打印如下类似信息，表示Docker构建成功。

       Successfully built 61bc7fae9f9e
       Successfully tagged {镜像名称}:{镜像标签}

2. 执行如下命令运行容器，并关联端口及挂载文件夹：

       docker run -itd -p {服务器端口}:22 --gpus all -v {服务器路径}:{容器路径} --name {容器名称} {镜像名称}:{镜像标签}

   其中：

   - -p参数：表示将服务器对应端口映射到容器的22端口。

   - --gpus参数：表示GPU对容器可见。

   - -v参数：表示将服务器相应路径映射到容器内的相应路径。该参数为可选参数。

3. 执行如下命令启动容器：

       docker start {容器名称}

   使用如下指令查询运行的容器，如果查询的表格中包含启动的容器，则表示启动成功。

       docker ps

4. 配置容器root密码。

   - 使用如下命令进入容器：

         docker exec -it {容器名称} /bin/bash

   - 配置密码：

         passwd

5. 在容器内执行如下命令测试GPU是否可用。

       nvidia-smi

   命令输出如图1类似信息，表示GPU可用。

   图 1 GPU查询结果

6. 在Linux服务器执行如下命令测试ssh连接。按照提示输入root密码，能够顺利进入容器，则表示ssh连接正常。

       ssh root@{服务器IP地址} -p {服务器端口}

### Windows侧Bash环境准备

该小节仅针对于需要依赖bash环境才可以编译的Hi3322工程。

如果需要编译Hi3322的工程，用户需手动下载Git并将bash路径添加到环境变量中。

下载链接：https://github.com/git-for-windows/git/releases/download/v2.48.1.windows.1/Git-2.48.1-64-bit.exe

如果Windows系统System32下默认有“bash.exe”，需要删除其系统下的“bash.exe”，使用安装的git下内置的“bash.exe”。

完成后，重启VS Code使新环境变量生效，即可正常编译工程。

图 1 删除Windows系统库的bash

> 说明： 若删除Windows系统库下的bash时提示没权限，可以在需要删除的“bash.exe”上右键点击，选择“属性”，在弹出的窗口中依次点击“安全”标签页→“高级”→点击“所有者”标签页下的“更改”按钮。选择一个新的所有者（例如当前用户），点击“应用”和“确定”。返回“安全”标签页，点击“编辑”。为当前添加的用户或组分配适当的权限（如完全控制、读取等）。点“应用”和“确定”后即可删掉选择的“bash.exe”文件。

图 2 配置bash.exe的删除权限

图 3 配置bash.exe的删除权限

图 4 Git下的bash路径

图 5 添加到环境变量中

图 6 保证Git下的bash被调用

### 准备SDK

取Hi3322对应SDK发布包，解压SDK包到本地目录。

# 样例运行

## Hi3863样例运行

### 模型与数据获取

1. 模型获取并上传到容器内。

   进行模型量化，请点击Link，下载ONNX模型。

2. 点击Link，下载数据和预处理脚本“preproc_mnist_data.py”。请参考文档，在容器内执行该脚本，进行数据获取。请确保文件夹内包含如下数据和文件。

       .
       |-- test_data
       |   `-- npy
       |       `-- sample_00000_7.npy
       |       `-- ......
       |       `-- sample_09999_6.npy
       |   `-- bin
       |       `-- sample_00000_7.bin
       |       `-- ......
       |       `-- sample_09999_6.bin
       |   `-- label.csv
       `-- train_data
       |   `-- bin
       |       `-- sample_00000_5.bin
       |       `-- ......
       |       `-- sample_59999_8.bin
       |   `-- label.csv

   > 说明： test_data和train_data目录作为数据下载和预处理脚本的输入参数，会根据用户的输入而变化。

### 新建工程与模型导入

1. 进入HiSpark Studio AI插件点击home按钮，点击“New Project”按钮。

   图 1 New Project

2. 选择芯片为WS63，选择已准备好的SDK目录，工程项目目录选择SDK相同路径即可。

   图 2 工程创建示意图

3. 进入模型选择页面，点击New Model按钮连接Linux服务器，输入密码，选择对应的LeNet onnx模型。

   图 3 模型导入示意图

4. 连接远程服务器，输入Docker的IP、端口号、用户名、密码。

   图 4 连接远程服务器示意图

### 模型压缩

1. 进入模型压缩页面，打开Validation开关，在Calibration Inputs输入框选择“Input3”（模型输入名称）为bin文件目录路径，在Validation Inputs输入框选择“Input3”为验证数据npy目录，在Validation Labels文本框选择为含标签的label文件。

   Label文件数据结构如表1所示。

   表 1 label.csv文件内容

   sample | label
   --- | ---
   sample_00000_7.npy | 7
   sample_00001_2.npy | 2

   > 说明： label.csv中为样本分类的真值标签。文件中的表格格式如表1。其中sample列表示样本的名称。label列表示样本对应的真值标签。

   图 1 模型压缩示意图

2. 点击“Quantize”按钮，输出量化余弦相似度、准确率以及MSE等结果。

### 模型转换

点击“Convert”按钮，完成模型转换，输出对应的RAM以及FLASH值。

图 1 模型转换示意图

图 2 模型转换结果示意图

### 模型部署

点击“Accuracy & Latency Profiling”按钮，进入模型部署流程页面。

图 1 模型部署示意图

### 性能评估和精度评估

配置串口信息，点击性能验证按钮。

图 1 模型评估示意图

输出上板验证的时间、RAM、FLASH的值。

图 2 模型评估示意图

配置Validation Input的验证数据文件，配置Validation Output的label文件的值，点击精度验证。

图 3 模型评估示意图

输出验证数据结果的余弦相似度等值。

图 4 模型评估示意图

### 应用开发

在HiSpark Studio AI中完成模型量化、转换之后，将模型导出并使用HiSpark.AI API完成应用开发。具体步骤如下。

1. 在“Deploy”页面下载转化好的Micro工程文件。

   图 1 下载micro工程文件

2. 具体API的用法请参考文档《HiSpark.AI API开发指南》

## Hi3322样例运行

本章节以LeNet5模型为例，介绍如何使用HiSpark Studio AI工具进行模型量化、转换、性能评估以及精度评估。如果需要使用命令行工具进行如上操作，请参考《AMCT模型压缩工具用户指南》以及《ATC离线模型编译工具用户指南》。

### 模型与数据获取

1. 模型获取，并上传到容器内。

   - 进行训练后量化PTQ，请点击Link，下载ONNX模型。

   - 进行量化感知训练QAT，请点击Link，下载PyTorch模型权重文件。

2. 点击Link，下载数据和预处理脚本“preproc_mnist_data.py”。请参考文档，在容器内执行该脚本，进行数据获取。请确保文件夹内包含如下数据和文件。

       .
       |-- test_data
       |   `-- npy
       |       `-- sample_00000_7.npy
       |       `-- ......
       |       `-- sample_09999_6.npy
       |   `-- bin
       |       `-- sample_00000_7.bin
       |       `-- ......
       |       `-- sample_09999_6.bin
       |   `-- label.csv
       `-- train_data
       |   `-- bin
       |       `-- sample_00000_5.bin
       |       `-- ......
       |       `-- sample_59999_8.bin
       |   `-- label.csv

   > 说明：

   > 1. test_data和train_data目录作为数据下载和预处理脚本的输入参数，会根据用户的输入而变化。

   > 2. label.csv中为样本分类的真值标签。文件中的表格格式如表1 label.csv格式示例。其中sample列表示样本的名称。label列表示样本对应的真值标签。

   表 1 label.csv格式示例

   sample | label
   --- | ---
   sample_00000_7.npy | 7
   sample_00001_2.npy | 2

### 新建工程与模型导入

1. 进入HiSpark Studio AI插件点击“Home”按钮，点击“New Project”按钮进入新建工程页面。在弹出框中选择SOC类型为“3322”；选择已经下载的SDK路径；并为工程设置好名字和工程文件保存地址。

   图 1 新建工程页面

2. 点击“Finished”进入“Select Model”页面。

3. 连接远程服务器，输入Docker的IP、端口号、用户名、密码。

4. 点击“New model”并选择“模型与数据获取”章节下载的模型。

   - 进行训练后量化，请选择ONNX模型。

   - 进行量化感知训练，请选择PyTorch模型。

   > 说明： 首次连接请根据提示设置远端连接。注意端口选择映射到容器内的服务器端口。

5. 导入模型后，自动跳转到量化页面。

   - 如果导入的模型为ONNX模型，跳转到训练后量化页面。

   - 如果导入的模型为PyTorch模型，跳转到量化感知训练界面。

### 模型压缩

在“Quantize”模型转换页面对模型进行量化，并对量化后的评估模型进行精度验证，以帮助用户评估量化后的模型是否符合业务需求。精度验证的指标如表1 精度验证指标所示。

表 1 精度验证指标

指标 | 说明
--- | ---
Balanced Accuracy | 表示分类结果准确率，使用标签真值计算。
Avg Sim | 平均余弦相似度，使用量化评估网络的输出和原始浮点网络的输出计算。
MSE | 均方误差，使用量化评估网络的输出和原始浮点网络的输出计算。

模型压缩“Quantize”页面提供训练后量化PTQ和量化感知训练QAT两种量化方式。

#### 训练后量化

1. 在“Quantization Config”中配置输入参数。

   1. “Calibration Inputs”文件选择框中输入量化校准数据：选择“模型与数据获取”下载的训练数据文件夹下的bin子文件夹，如“train_data/bin”。

   2. 打开“validation”开关。

   3. 在“Validation Inputs”文件选择框中输入验证数据：选择“模型与数据获取”下载的测试数据文件夹下的npy子文件夹，如：test_data/npy。

   4. 打开“validation Labels”。并在文件输入验证数据的真值：选择框选择“模型与数据获取”下载的测试数据文件夹下的“label.csv”文件。

   5. 其他参数保持默认，或按需调整。

   图 1 训练后量化参数配置界面

2. 点击“Quantize”按钮开始量化。“OUTPUT”中输出如下类似信息，表示量化成功。

       2026-01-04 08:14:23 - INFO - HiSpark.AI SUCCESS; Precision validation completed successfully
       2026-01-04 08:14:23 - INFO - HiSpark.AI SUCCESS; All quantization workflow steps completed successfully

3. 在“History of Convert results”中查看量化仿真模型在验证集的精度。

   图 2 量化结果显示界面

4. 在“Probability Density Histogram”窗口查看验证样本余弦相似度的分布。

   图 3 训练后量化评估网络在验证集的余弦相似度分布直方图

5. 在“History of Compression results”的“Operation”列点击“Next”按钮，进入模型转换页面。

#### 量化感知训练

1. 点击按钮“ReTrain Code”打开重训练代码编辑框。并修改代码模板。

   - 设定训练epoch数。

         EPOCH_NUM = 1

   - 设定训练的batch_num。

         BATCH_SIZE = 4

   - 设定学习率。

         LEARNING_RATE = 0.00001

   - 定义网络结构。

         class NNModel(nn.Module):
             def __init__(self) -> None:
                 """Initialize network layers and components."""
                 super(NNModel, self).__init__()

                 self.conv1 = nn.Conv2d(1, 8, kernel_size=(5, 5), padding=2)
                 self.relu1 = nn.ReLU()
                 self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2), stride=(2, 2), padding=(0, 0), dilation=1, ceil_mode=False)

                 self.conv2 = nn.Conv2d(8, 16, kernel_size=(5, 5), padding=2)
                 self.relu2 = nn.ReLU()
                 self.maxpool2 = nn.MaxPool2d(kernel_size=(3, 3), stride=(3, 3), padding=(0, 0), dilation=1, ceil_mode=False)

                 self.fc = torch.nn.Linear(256, 10, bias=True)

             def forward(self, img):
                 """
                 Forward pass of the network.

                 Args:
                     x (torch.Tensor): Input tensor with shape (batch_size, 1, 28, 28)

                 Returns:
                     torch.Tensor: Output logits with shape (batch_size, 10)
                 """
                 out = self.conv1(img)
                 out = self.relu1(out)
                 out = self.maxpool1(out)
                 out = self.conv2(out)

                 out = self.relu2(out)
                 out = self.maxpool2(out)
                 out = out.reshape(-1, 256)
                 out = self.fc(out)
                 return out

2. 配置“Quantization Config”中的输入参数

   1. “Retrain Inputs”文件选择框中选择“模型与数据获取”下载的训练数据文件夹下的bin子文件夹，如：train_data/bin。

   2. “Retrain Outputs”文件选择框选择“模型与数据获取”下载的训练数据文件夹下的“label.csv”文件。

   3. “Validation Inputs”文件选择框中选择“模型与数据获取”下载的测试数据文件夹下的npy子文件夹，如：test_data/npy。

   4. “Retrain Outputs”文件选择框选择“模型与数据获取”下载的测试数据文件夹下的“label.csv”文件。

   5. 其他参数保持默认，或按需调整。

   图 1 量化感知训练参数输入界面

3. 点击“Quantize”按钮开始量化感知训练。“OUTPUT”框中出现如下类似信息，说明量化感知训练成功。

       2026-01-06 06:10:42 - INFO - HiSpark.AI SUCCESS; All workflow steps completed successfully

4. 在“History of Compression results”中查看量化仿真模型在验证集的精度。

   图 2 量化感知训练验证精度显示界面

5. 在“Probability Density Histogram”窗口查看验证样本余弦相似度的分布。

   图 3 量化感知训练评估网络在验证集的余弦相似度分布直方图

6. 在“History of Compression results”的“Operation”列点击“Next”按钮，进入模型转换页面。

### 模型转换

在“Convert”模型转换页面将量化后的模型进行转换，得到适配NPU IP加速器的离线模型。具体步骤如下。

1. 保持默认参数，点击“Convert”按钮完成模型转换。

2. 在“Convert results”窗口查看转化后模型的大小。

   图 1 转化后模型大小图示

3. 在“History of Compression results”的“Operation”列点击“Next”按钮，进入模型部署页面。

### 模型部署

点击“Accuracy & Latency Profiling”按钮，完成SDK的编译，并进入性能评估和精度评估页面。

图 1 SDK编译和进入评估页面

### 性能评估和精度评估

HiSpark Studio AI提供连板性能评估和精度评估功能。在开始性能评估和精度评估前，请按照Hi3322硬件指导完成Hi3322硬件环境的准备。

- 性能评估自动将转换的模型上传到单板，在端侧推理模型并统计模型推理性能。

- 精度评估自动将转换的模型和验证集上传到单板，在端测推理模型；并和量化之前的模型以及真值标签对比，计算量化精度指标。

性能评估和精度评估的具体步骤如下。

1. 在“Serial Config”窗口配置数据传输的端口、波特率，以及命令传输和烧写的端口和波特率。

   图 1 串口配置

2. 点击“烧录”按钮，完成镜像烧录。

3. 点击“性能验证”按钮，完成模型上板性能验证。验证完成后，在性能验证窗口显示推理时间、和模型大小。

   图 2 性能验证结果

4. 在“Accuracy Validation Config”窗口配置精度验证数据集。

   - 将“模型与数据获取”下载的测试数据文件夹下的npy子文件夹，如“test_data/npy”，拷贝到Windows侧。“Validatioin Inputs”文件选择框中该文件夹。

   - 将“模型与数据获取”下载的测试数据文件夹下的“label.csv”文件拷贝到Windows侧。“Validation Output”文件选择框选择该文件。

     图 3 精度验证数据集配置界面

5. 点击“精度验证”按钮，开始上板精度验证。

6. 在“BALANCED ACCURACY”窗口查看上板精度验证的精度值。该值为使用为“label.csv”中的标签真值计算的结果。

   图 4 精度评估准确率显示界面

7. 在“Validation Data”窗口查看验证集各个样本的验证结果。

   图 5 验证样本的评估精度显示界面

8. 在“Probability Density Histogram”窗口查看验证样本余弦相似度的分布。

   图 6 余弦相似度分布直方图

### 应用开发

在HiSpark Studio AI中完成模型量化、转换之后，将模型导出并使用HiSpark.AI API完成应用开发。具体步骤如下。

1. 在“Deploy”页面下载转化好的exeom模型。

   图 1 下载exeom模型

2. 具体API的用法请参考文档《HiSpark.AI API开发指南》