model.h

概述

提供了模型相关接口,可以用于模型创建、模型推理等。

库: libmindspore_lite_ndk.so

起始版本: 9

相关模块:MindSpore

汇总

结构体

名称 描述
OH_AI_TensorHandleArray 张量数组结构体,用于存储张量数组指针和张量数组长度
OH_AI_ShapeInfo 维度信息,最大的维度为MS_MAX_SHAPE_NUM
OH_AI_CallBackParam 回调函数中传入的算子信息。

宏定义

名称 描述
OH_AI_MAX_SHAPE_NUM 32 张量维度的最大值。

类型定义

名称 描述
OH_AI_ModelHandle 指向模型对象的指针。
OH_AI_TrainCfgHandle 指向训练配置对象的指针。
OH_AI_TensorHandleArray 张量数组结构体,用于存储张量数组指针和张量数组长度
OH_AI_ShapeInfo 维度信息,最大的维度为MS_MAX_SHAPE_NUM
OH_AI_CallBackParam 回调函数中传入的算子信息。
OH_AI_KernelCallBack) (const OH_AI_TensorHandleArray inputs, const OH_AI_TensorHandleArray outputs, const OH_AI_CallBackParam kernel_Info) 回调函数指针。

函数

名称 描述
OH_AI_ModelCreate () 创建一个模型对象。
OH_AI_ModelDestroy (OH_AI_ModelHandle *model) 释放一个模型对象。
OH_AI_ModelBuild (OH_AI_ModelHandle model, const void *model_data, size_t data_size, OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context) 从内存缓冲区加载并编译MindSpore模型。
OH_AI_ModelBuildFromFile (OH_AI_ModelHandle model, const char *model_path, OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context) 通过模型文件加载并编译MindSpore模型。
OH_AI_ModelResize (OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, OH_AI_ShapeInfo *shape_infos, size_t shape_info_num) 调整已编译模型的输入形状。
OH_AI_ModelPredict (OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, OH_AI_TensorHandleArray *outputs, const OH_AI_KernelCallBack before, const OH_AI_KernelCallBack after) 执行模型推理。
OH_AI_ModelGetInputs (const OH_AI_ModelHandle model) 获取模型的输入张量数组结构体。
OH_AI_ModelGetOutputs (const OH_AI_ModelHandle model) 获取模型的输出张量数组结构体。
OH_AI_ModelGetInputByTensorName (const OH_AI_ModelHandle model, const char *tensor_name) 通过张量名获取模型的输入张量。
OH_AI_ModelGetOutputByTensorName (const OH_AI_ModelHandle model, const char *tensor_name) 通过张量名获取模型的输出张量。
OH_AI_TrainCfgCreate () 创建训练配置对象指针,仅用于端侧训练。
OH_AI_TrainCfgDestroy (OH_AI_TrainCfgHandle *train_cfg) 销毁训练配置对象指针,仅用于端侧训练。
OH_AI_TrainCfgGetLossName (OH_AI_TrainCfgHandle train_cfg, size_t *num) 获取损失函数的名称列表,仅用于端侧训练。
OH_AI_TrainCfgSetLossName (OH_AI_TrainCfgHandle train_cfg, const char **loss_name, size_t num) 设置损失函数的名称列表,仅用于端侧训练。
OH_AI_TrainCfgGetOptimizationLevel (OH_AI_TrainCfgHandle train_cfg) 获取训练配置的优化等级,仅用于端侧训练。
OH_AI_TrainCfgSetOptimizationLevel (OH_AI_TrainCfgHandle train_cfg, OH_AI_OptimizationLevel level) 设置训练配置的优化等级,仅用于端侧训练。
OH_AI_TrainModelBuild (OH_AI_ModelHandle model, const void *model_data, size_t data_size, OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context, const OH_AI_TrainCfgHandle train_cfg) 从内存缓冲区加载训练模型,并将模型编译至可在Device上运行的状态,仅用于端侧训练。
OH_AI_TrainModelBuildFromFile (OH_AI_ModelHandle model, const char *model_path, OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context, const OH_AI_TrainCfgHandle train_cfg) 根据路径读取加载训练模型,并将模型编译至可在Device上运行的状态,仅用于端侧训练。
OH_AI_RunStep (OH_AI_ModelHandle model, const OH_AI_KernelCallBack before, const OH_AI_KernelCallBack after) 单步训练模型,仅用于端侧训练。
OH_AI_ModelSetLearningRate (OH_AI_ModelHandle model, float learning_rate) 设置训练的学习率,仅用于端侧训练。
OH_AI_ModelGetLearningRate (OH_AI_ModelHandle model) 获取训练的学习率,仅用于端侧训练。
OH_AI_ModelGetWeights (OH_AI_ModelHandle model) 获取模型的所有权重Tensors,仅用于端侧训练。
OH_AI_ModelUpdateWeights (OH_AI_ModelHandle model, const OH_AI_TensorHandleArray new_weights) 更新模型的权重Tensor内容,仅用于端侧训练。
OH_AI_ModelGetTrainMode (OH_AI_ModelHandle model) 获取训练模式。
OH_AI_ModelSetTrainMode (OH_AI_ModelHandle model, bool train) 设置训练模式,仅用于端侧训练。
OH_AI_ModelSetupVirtualBatch (OH_AI_ModelHandle model, int virtual_batch_multiplier, float lr, float momentum) 设置虚拟batch用于训练,仅用于端侧训练。
OH_AI_ExportModel (OH_AI_ModelHandle model, OH_AI_ModelType model_type, const char *model_file, OH_AI_QuantizationType quantization_type, bool export_inference_only, char **output_tensor_name, size_t num) 导出训练模型,仅用于端侧训练。
OH_AI_ExportModelBuffer (OH_AI_ModelHandle model, OH_AI_ModelType model_type, char **model_data, size_t *data_size, OH_AI_QuantizationType quantization_type, bool export_inference_only, char **output_tensor_name, size_t num) 导出训练模型内存缓存,仅用于端侧训练。
OH_AI_ExportWeightsCollaborateWithMicro (OH_AI_ModelHandle model, OH_AI_ModelType model_type, const char *weight_file, bool is_inference, bool enable_fp16, char **changeable_weights_name, size_t num) 导出模型权重,只能用于micro推理,仅用于端侧训练。