行业知识
HarmonyOS:使用 MindSpore Lite 引擎进行模型推理
2026-11-15 11:27:48
来源:互联网转载
场景介绍
MindSpore Lite 是一款 AI 引擎,它提供了面向不同硬件设备 AI 模型推理的功能,目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。
本文介绍使用 MindSpore Lite 推理引擎进行模型推理的通用开发流程。
基本概念
在进行开发前,请先了解以下概念。
张量:它与数组和矩阵非常相似,是 MindSpore Lite 网络运算中的基本数据结构。
Float16 推理模式: Float16 又称半精度,它使用 16 比特表示一个数。Float16 推理模式表示推理的时候用半精度进行推理。
接口说明
这里给出 MindSpore Lite 推理的通用开发流程中涉及的一些接口,具体请见下列表格。
Context 相关接口
Model 相关接口
Tensor 相关接口
开发步骤
使用 MindSpore Lite 进行模型推理的开发流程如下图所示。图 1 使用 MindSpore Lite 进行模型推理的开发流程
进入主要流程之前需要先引用相关的头文件,并编写函数生成随机的输入,具体如下:
#include #include #include "mindspore/model.h"//生成随机的输入int GenerateInputDataWithRandom(OH_AI_TensorHandleArray inputs) { for (size_t i = 0; i float *input_data = (float *)OH_AI_TensorGetMutableData(inputs.handle_list[i]); if (input_data == NULL) { printf("MSTensorGetMutableData failed.\n"); return OH_AI_STATUS_LITE_ERROR; } int64_t num = OH_AI_TensorGetElementNum(inputs.handle_list[i]); const int pisor = 10; for (size_t j = 0; j input_data[j] = (float)(rand() % pisor) / pisor; // 0--0.9f } } return OH_AI_STATUS_SUCCESS;} printf("OH_AI_ModelCreate failed.\n"); OH_AI_ContextDestroy(&context); return OH_AI_STATUS_LITE_ERROR;}// 加载与编译模型,模型的类型为OH_AI_MODELTYPE_MINDIRint ret = OH_AI_ModelBuildFromFile(model, argv[1], OH_AI_MODELTYPE_MINDIR, context);if (ret != OH_AI_STATUS_SUCCESS) { printf("OH_AI_ModelBuildFromFile failed, ret: %d.\n", ret); OH_AI_ModelDestroy(&model); return ret;} printf("OH_AI_ModelGetInputs failed, ret: %d.\n", ret); OH_AI_ModelDestroy(&model); return ret;}// 使用随机数据填充张量ret = GenerateInputDataWithRandom(inputs);if (ret != OH_AI_STATUS_SUCCESS) { printf("GenerateInputDataWithRandom failed, ret: %d.\n", ret); OH_AI_ModelDestroy(&model); return ret;} printf("OH_AI_ModelPredict failed, ret: %d.\n", ret); OH_AI_ModelDestroy(&model); return ret;}