Rspress

# #OE开发包示例介绍

算法工具链覆盖了模型训练（浮点训练和量化训练，可选）、转换、性能/精度验证、部署和推理等关键步骤。为了方便您快速体验和学习，OE开发包中提供了丰富、全面的示例。为了方便了解和使用这些示例，本文将对这些示例进行详细介绍。

首先，在获取OE开发包后，解压后的示例包目录结构如下所示：

`samples # 示例包 ├── ai_toolchain | ├── horizon_model_convert_sample # 浮点模型转定点模型的转换示例 | ├── horizon_model_train_sample # 浮点模型训练框架示例 | └── model_zoo # 模型库，用于放置工具链示例模型编译的源模型和runtime模型 ├── model_zoo -> ai_toolchain/model_zoo └── ucp_tutorial # 统一计算平台UCP的示例包，提供UCP必要的依赖以及相关示例`

`samples`目录中提供了模型训练示例、浮点模型转定点模型示例以及统一计算平台UCP的相关示例。如下为工具链各阶段使用的一般流程和示例的分布：

在上图工具链的使用流程中，这些示例对应着不同的使用阶段：

- 模型转换示例包含了模型PTQ转换阶段的模型检查、校准数据处理、模型量化编译、单张图片推理和精度评估等过程。
- 模型训练示例包含了浮点模型训练（可选）和QAT量化训练（可选）阶段的数据集打包脚本、模型config文件、训练脚本以及其它工具脚本，当应用模型精度调优手段后仍未达到预期精度时，可以尝试QAT量化训练策略。
- UCP板端部署示例，包含视觉处理、模型推理、高性能算子库、自定义算子及目标检测全流程等示例，模型推理示例中提供了模型部署阶段的编译脚本、运行脚本和源代码。

## #模型转换示例（horizon_model_convert_sample）

工具链在`samples/ai_toolchain/horizon_model_convert_sample`文件夹下提供了模型转换示例，示例包目录结构如下所示：

`├── 01_common # 校准数据、数据加载、预处理代码 ├── 03_classification # 分类模型转换示例 ├── 04_detection # 检测模型转换示例 ├── 07_segmentation # 分割模型转换示例`

OE包内不仅提供了PTQ模型转换示例，另外还包含了模型检查、校准数据预处理、转换编译、推理等一键运行脚本。

以`horizon_model_convert_sample/03_classification`目录下的03_resnet50为例，介绍相关脚本的作用：

`├── 00_init.sh # 获取示例对应的校准数据集和原始模型脚本 ├── 01_check.sh # 模型检查脚本 ├── 02_preprocess.sh # 校准数据预处理脚本 ├── 03_build.sh # 模型量化编译脚本 ├── 04_inference.sh # 单张图片推理脚本 ├── 05_evaluate.sh # 精度评测脚本 ├── resnet50_config.yaml # 模型编译yaml配置文件 ├── postprocess.py # 模型后处理代码 ├── preprocess.py # 数据预处理代码 └── README.cn.md`

PTQ模型转换示例的使用教程请参考PTQ模型转换示例章节的介绍。

## #模型训练示例（horizon_model_train_sample）

工具链在`samples/ai_toolchain/horizon_model_train_sample`目录下提供了模型训练示例，示例包结构如下所示：

`└── plugin_basic # horizon_plugin_pytorch基础示例`

## #统一计算平台示例（ucp_tutorial）

工具链在`samples/ai_toolchain/ucp_tutorial`目录下提供了统一计算平台UCP的示例源代码和运行脚本，示例包结构如下所示：

`ucp_tutorial ├── deps_aarch64 # AArch64 Linux 公共依赖目录 ├── deps_qnx # AArch64 QNX 公共依赖目录 ├── deps_x86 # X86仿真 公共依赖目录 ├── dnn # DNN示例 | ├── ai_benchmark # AI Benchmark示例 | └── basic_samples # 模型推理基础示例 └── tools # 工具`

- deps_aarch64：AArch64公共依赖目录，包含UCP依赖库及头文件等内容。

- deps_x86：X86仿真公共依赖目录。

- dnn：DNN示例，包括：

  - ai_benchmark，提供了嵌入式应用开发常见模型的性能和精度评测示例，详细介绍及使用教程请参考 AI Benchmark使用说明 章节的介绍。

  - basic_samples，提供了模型推理相关由浅及深的使用示例，旨在帮助您熟悉和学习模型推理相关的接口以及各种进阶功能，详细介绍及使用教程请参考 基础示例包使用说明 章节的介绍。

- tools：统一计算平台UCP提供的工具。

页面目录