开发流程
图1 开发流程
- 准备环境。
- 创建代码目录。
在开发应用前,您需要先创建目录,存放代码文件、编译脚本、测试图片数据、模型文件等。
如下仅是示例,供参考:
├App名称 ├── model // 该目录下存放模型文件 │ ├── xxxxxx ├── data │ ├── xxx.jpg // 测试数据 ├── inc // 该目录下存放声明函数的头文件 │ ├── xxx.h ├── out // 该目录下存放输出结果 ├── src │ ├── xxx.json // 系统初始化的配置文件 │ ├── CMakeLists.txt // 编译脚本 │ ├── xxx.cpp // 实现文件
- 构建模型。
模型推理场景下,必须要有适配昇腾AI处理器的离线模型(*.om文件),请参见模型构建。
- 开发应用。
- AscendCL初始化,请参见AscendCL初始化与去初始化。
使用AscendCL接口开发应用时,必须先调用aclInit接口进行AscendCL初始化,否则可能会导致后续系统内部资源初始化出错,进而导致其它业务异常。
- 运行管理资源申请,请参见运行管理资源申请与释放。
- 数据传输,请参见数据传输。
- 执行模型推理。请参见模型推理。
若需要处理模型推理的结果,还需要进行数据后处理,例如对于图片分类应用,通过数据后处理从推理结果中查找最大置信度的类别标识。
模型推理结束后,需及时释放推理相关资源。
- 所有数据处理结束后,需及时释放运行管理资源,请参见运行管理资源申请与释放。
- 执行AscendCL去初始化,请参见AscendCL初始化与去初始化。
- AscendCL初始化,请参见AscendCL初始化与去初始化。
- 编译运行应用,包括模型转换、编译代码、运行应用,请参见编译及运行应用。
父主题: 开发基础推理应用