• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# MindSpore
2
3
4## 概述
5
6提供MindSpore Lite的模型推理相关接口。
7
8\@Syscap SystemCapability.Ai.MindSpore
9
10**起始版本:**
11
129
13
14
15## 汇总
16
17
18### 文件
19
20| 名称                            | 描述                                                         |
21| ------------------------------- | ------------------------------------------------------------ |
22| [context.h](context_8h.md)      | 提供了Context相关的接口,可以配置运行时信息。<br>引用文件:\<mindspore/context.h><br>库:libmindspore_lite_ndk.so |
23| [data_type.h](data__type_8h.md) | 声明了张量的数据的类型。<br>引用文件:\<mindspore/data_type.h><br>库:libmindspore_lite_ndk.so |
24| [format.h](format_8h.md)        | 提供张量数据的排列格式。<br>引用文件:\<mindspore/format.h><br>库:libmindspore_lite_ndk.so |
25| [model.h](model_8h.md)          | 提供了模型相关接口,可以用于模型创建、模型推理等。<br>引用文件:\<mindspore/model.h><br>库:libmindspore_lite_ndk.so |
26| [status.h](status_8h.md)        | 提供了Mindspore Lite运行时的状态码。<br>引用文件:\<mindspore/status.h><br>库:libmindspore_lite_ndk.so |
27| [tensor.h](tensor_8h.md)        | 提供了张量相关的接口,可用于创建和修改张量信息。<br>引用文件:\<mindspore/tensor.h><br>库:libmindspore_lite_ndk.so |
28| [types.h](types_8h.md)          | 提供了MindSpore Lite支持的模型文件类型和设备类型。<br>引用文件:\<mindspore/types.h><br>库:libmindspore_lite_ndk.so |
29
30
31### 结构体
32
33| 名称                                                         | 描述                                                 |
34| ------------------------------------------------------------ | ---------------------------------------------------- |
35| [OH_AI_TensorHandleArray](_o_h___a_i___tensor_handle_array.md) | 张量数组结构体,用于存储张量数组指针和张量数组长度。 |
36| [OH_AI_ShapeInfo](_o_h___a_i___shape_info.md)                | 维度信息,最大的维度为**MS_MAX_SHAPE_NUM**。         |
37| [OH_AI_CallBackParam](_o_h___a_i___call_back_param.md)       | 回调函数中传入的算子信息。                           |
38
39
40### 宏定义
41
42| 名称                                             | 描述                                         |
43| ------------------------------------------------ | -------------------------------------------- |
44| [OH_AI_MAX_SHAPE_NUM](#oh_ai_max_shape_num)   32 | 张量维度的最大值。 |
45
46
47### 类型定义
48
49| 名称                                                         | 描述                                               |
50| ------------------------------------------------------------ | -------------------------------------------------- |
51| [OH_AI_ContextHandle](#oh_ai_contexthandle)                  | Mindspore的上下文信息的指针,该指针会指向Context。 |
52| [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)            | Mindspore的运行设备信息的指针。                    |
53| [OH_AI_DataType](#oh_ai_datatype)                            | MSTensor保存的数据支持的类型。                     |
54| [OH_AI_Format](#oh_ai_format)                                | MSTensor保存的数据支持的排列格式。                 |
55| [OH_AI_ModelHandle](#oh_ai_modelhandle)                      | 指向模型对象的指针。                               |
56| [OH_AI_TensorHandleArray](#oh_ai_tensorhandlearray)          | 张量数组结构体,用于存储张量数组指针和张量数组长度 |
57| [OH_AI_ShapeInfo](_o_h___a_i___shape_info.md)                | 维度信息,最大的维度为MS_MAX_SHAPE_NUM。           |
58| [OH_AI_CallBackParam](#oh_ai_callbackparam)                  | 回调函数中传入的算子信息。                         |
59| [OH_AI_KernelCallBack](#oh_ai_kernelcallback) | 回调函数指针。                                     |
60| [OH_AI_Status](#oh_ai_status)                                | Minspore的状态码。                                 |
61| [OH_AI_TensorHandle](#oh_ai_tensorhandle)                    | 指向张量对象句柄。                                 |
62| [OH_AI_ModelType](#oh_ai_modeltype)                          | 模型文件的类型。                                   |
63| [OH_AI_DeviceType](#oh_ai_devicetype)                        | 设备类型信息,包含了目前支持的设备类型。           |
64| [OH_AI_NNRTDeviceType](#oh_ai_nnrtdevicetype)                | NNRT管理的硬件设备类型                             |
65| [OH_AI_PerformanceMode](#oh_ai_performancemode)              | NNRT硬件的工作性能模式                             |
66| [OH_AI_Priority](#oh_ai_priority)                            | NNRT推理任务优先级                                 |
67| [NNRTDeviceDesc](#nnrtdevicedesc)                            | NNRT设备信息描述,包含设备ID,设备名称等信息。     |
68
69
70### 枚举
71
72| 名称                                                         | 描述                                     |
73| ------------------------------------------------------------ | ---------------------------------------- |
74| [OH_AI_DataType](#oh_ai_datatype-1) {<br/>OH_AI_DATATYPE_UNKNOWN = 0, <br/>OH_AI_DATATYPE_OBJECTTYPE_STRING = 12, <br/>OH_AI_DATATYPE_OBJECTTYPE_LIST = 13, <br/>OH_AI_DATATYPE_OBJECTTYPE_TUPLE = 14,<br/>OH_AI_DATATYPE_OBJECTTYPE_TENSOR = 17, <br/>OH_AI_DATATYPE_NUMBERTYPE_BEGIN = 29,<br/> OH_AI_DATATYPE_NUMBERTYPE_BOOL = 30,<br/> OH_AI_DATATYPE_NUMBERTYPE_INT8 = 32,<br/>OH_AI_DATATYPE_NUMBERTYPE_INT16 = 33, <br/>OH_AI_DATATYPE_NUMBERTYPE_INT32 = 34, <br/>OH_AI_DATATYPE_NUMBERTYPE_INT64 = 35, <br/>OH_AI_DATATYPE_NUMBERTYPE_UINT8 = 37,<br/>OH_AI_DATATYPE_NUMBERTYPE_UINT16 = 38, <br/>OH_AI_DATATYPE_NUMBERTYPE_UINT32 = 39,<br/> OH_AI_DATATYPE_NUMBERTYPE_UINT64 = 40, <br/>OH_AI_DATATYPE_NUMBERTYPE_FLOAT16 = 42,<br/>OH_AI_DATATYPE_NUMBERTYPE_FLOAT32 = 43, <br/>OH_AI_DATATYPE_NUMBERTYPE_FLOAT64 = 44, <br/>OH_AI_DATATYPE_NUMBERTYPE_END = 46,<br/> OH_AI_DataTypeInvalid = INT32_MAX<br/>} | MSTensor保存的数据支持的类型。           |
75| [OH_AI_Format](#oh_ai_format-1) {<br/>OH_AI_FORMAT_NCHW = 0,<br/> OH_AI_FORMAT_NHWC = 1, <br/>OH_AI_FORMAT_NHWC4 = 2, <br/>OH_AI_FORMAT_HWKC = 3,<br/>OH_AI_FORMAT_HWCK = 4, <br/>OH_AI_FORMAT_KCHW = 5, <br/>OH_AI_FORMAT_CKHW = 6,<br/> OH_AI_FORMAT_KHWC = 7,<br/>OH_AI_FORMAT_CHWK = 8,<br/> OH_AI_FORMAT_HW = 9, <br/>OH_AI_FORMAT_HW4 = 10,<br/> OH_AI_FORMAT_NC = 11,<br/>OH_AI_FORMAT_NC4 = 12, <br/>OH_AI_FORMAT_NC4HW4 = 13, <br/>OH_AI_FORMAT_NCDHW = 15,<br/> OH_AI_FORMAT_NWC = 16,<br/>OH_AI_FORMAT_NCW = 17<br/>} | MSTensor保存的数据支持的排列格式。       |
76| [OH_AI_CompCode](#oh_ai_compcode) { <br/>OH_AI_COMPCODE_CORE = 0x00000000u, <br/>OH_AI_COMPCODE_LITE = 0xF0000000u<br/> } | Minspore不同组件的代码。                 |
77| [OH_AI_Status](#oh_ai_status-1) {<br/>OH_AI_STATUS_SUCCESS = 0, OH_AI_STATUS_CORE_FAILED = OH_AI_COMPCODE_CORE \| 0x1, OH_AI_STATUS_LITE_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -1), OH_AI_STATUS_LITE_NULLPTR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -2),<br/>OH_AI_STATUS_LITE_PARAM_INVALID = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -3), OH_AI_STATUS_LITE_NO_CHANGE = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -4), OH_AI_STATUS_LITE_SUCCESS_EXIT = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -5), OH_AI_STATUS_LITE_MEMORY_FAILED = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -6),<br/>OH_AI_STATUS_LITE_NOT_SUPPORT = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -7), OH_AI_STATUS_LITE_THREADPOOL_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -8), OH_AI_STATUS_LITE_UNINITIALIZED_OBJ = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -9), OH_AI_STATUS_LITE_OUT_OF_TENSOR_RANGE = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -100),<br/>OH_AI_STATUS_LITE_INPUT_TENSOR_ERROR, OH_AI_STATUS_LITE_REENTRANT_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -102), OH_AI_STATUS_LITE_GRAPH_FILE_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -200), OH_AI_STATUS_LITE_NOT_FIND_OP = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -300),<br/>OH_AI_STATUS_LITE_INVALID_OP_NAME = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -301), OH_AI_STATUS_LITE_INVALID_OP_ATTR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -302), OH_AI_STATUS_LITE_OP_EXECUTE_FAILURE, OH_AI_STATUS_LITE_FORMAT_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -400),<br/>OH_AI_STATUS_LITE_INFER_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -500), OH_AI_STATUS_LITE_INFER_INVALID, OH_AI_STATUS_LITE_INPUT_PARAM_INVALID<br/>} | Minspore的状态码。                       |
78| [OH_AI_ModelType](#oh_ai_modeltype-1) { <br/>OH_AI_MODELTYPE_MINDIR = 0, <br/>OH_AI_MODELTYPE_INVALID = 0xFFFFFFFF <br/>} | 模型文件的类型。                         |
79| [OH_AI_DeviceType](#oh_ai_devicetype-1) {<br/>OH_AI_DEVICETYPE_CPU = 0, <br/>OH_AI_DEVICETYPE_GPU, <br/>OH_AI_DEVICETYPE_KIRIN_NPU, <br/>OH_AI_DEVICETYPE_NNRT = 60,<br/>OH_AI_DEVICETYPE_INVALID = 100<br/>} | 设备类型信息,包含了目前支持的设备类型。 |
80| [OH_AI_NNRTDeviceType](#oh_ai_nnrtdevicetype-1) { <br/>OH_AI_NNRTDEVICE_OTHERS = 0, <br/>OH_AI_NNRTDEVICE_CPU = 1, <br/>OH_AI_NNRTDEVICE_GPU = 2, <br/>OH_AI_NNRTDEVICE_ACCELERATOR = 3<br/> } | NNRT管理的硬件设备类型。                 |
81| [OH_AI_PerformanceMode](#oh_ai_performancemode-1) {<br/>OH_AI_PERFORMANCE_NONE = 0, <br/>OH_AI_PERFORMANCE_LOW = 1, <br/>OH_AI_PERFORMANCE_MEDIUM = 2,<br/> OH_AI_PERFORMANCE_HIGH = 3,<br/>OH_AI_PERFORMANCE_EXTREME = 4<br/>} | NNRT硬件的工作性能模式。                 |
82| [OH_AI_Priority](#oh_ai_priority-1) { <br/>OH_AI_PRIORITY_NONE = 0, <br/>OH_AI_PRIORITY_LOW = 1, <br/>OH_AI_PRIORITY_MEDIUM = 2, <br/>OH_AI_PRIORITY_HIGH = 3 <br/>} | NNRT推理任务优先级。                     |
83
84
85### 函数
86
87| 名称                                                         | 描述                                                         |
88| ------------------------------------------------------------ | ------------------------------------------------------------ |
89| [OH_AI_ContextCreate](#oh_ai_contextcreate) ()               | 创建一个上下文的对象。                                       |
90| [OH_AI_ContextDestroy](#oh_ai_contextdestroy) ([OH_AI_ContextHandle](#oh_ai_contexthandle) \*context) | 释放上下文对象。                                             |
91| [OH_AI_ContextSetThreadNum](#oh_ai_contextsetthreadnum) ([OH_AI_ContextHandle](#oh_ai_contexthandle) context, int32_t thread_num) | 设置运行时的线程数量。                                       |
92| [OH_AI_ContextGetThreadNum](#oh_ai_contextgetthreadnum) (const [OH_AI_ContextHandle](#oh_ai_contexthandle) context) | 获取线程数量。                                               |
93| [OH_AI_ContextSetThreadAffinityMode](#oh_ai_contextsetthreadaffinitymode) ([OH_AI_ContextHandle](#oh_ai_contexthandle) context, int mode) | 设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。 |
94| [OH_AI_ContextGetThreadAffinityMode](#oh_ai_contextgetthreadaffinitymode) (const [OH_AI_ContextHandle](#oh_ai_contexthandle) context) | 获取运行时线程绑定CPU核心的策略。                            |
95| [OH_AI_ContextSetThreadAffinityCoreList](#oh_ai_contextsetthreadaffinitycorelist) ([OH_AI_ContextHandle](#oh_ai_contexthandle) context, const int32_t \*core_list, size_t core_num) | 设置运行时线程绑定CPU核心的列表。                            |
96| [OH_AI_ContextGetThreadAffinityCoreList](#oh_ai_contextgetthreadaffinitycorelist) (const [OH_AI_ContextHandle](#oh_ai_contexthandle) context, size_t \*core_num) | 获取CPU绑核列表。                                            |
97| [OH_AI_ContextSetEnableParallel](#oh_ai_contextsetenableparallel) ([OH_AI_ContextHandle](#oh_ai_contexthandle) context, bool is_parallel) | 设置运行时是否支持并行。此接口特性当前未开启,设置无效。                                     |
98| [OH_AI_ContextGetEnableParallel](#oh_ai_contextgetenableparallel) (const [OH_AI_ContextHandle](#oh_ai_contexthandle) context) | 获取是否支持算子间并行。                                     |
99| [OH_AI_ContextAddDeviceInfo](#oh_ai_contextadddeviceinfo) ([OH_AI_ContextHandle](#oh_ai_contexthandle) context, [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 将一个用户定义的运行设备信息附加到推理上下文中。                                           |
100| [OH_AI_DeviceInfoCreate](#oh_ai_deviceinfocreate) ([OH_AI_DeviceType](#oh_ai_devicetype) device_type) | 创建一个设备信息对象。                                       |
101| [OH_AI_DeviceInfoDestroy](#oh_ai_deviceinfodestroy) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) \*device_info) | 释放设备信息实例。注意:设备信息实例被添加到context后,无需调用者手动释放。                                           |
102| [OH_AI_DeviceInfoSetProvider](#oh_ai_deviceinfosetprovider) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, const char \*provider) | 设置供应商的名称。                                           |
103| [OH_AI_DeviceInfoGetProvider](#oh_ai_deviceinfogetprovider) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取生产商的名称。                                           |
104| [OH_AI_DeviceInfoSetProviderDevice](#oh_ai_deviceinfosetproviderdevice) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, const char \*device) | 设置生产商设备的名称。                                       |
105| [OH_AI_DeviceInfoGetProviderDevice](#oh_ai_deviceinfogetproviderdevice) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取生产商设备的名称。                                       |
106| [OH_AI_DeviceInfoGetDeviceType](#oh_ai_deviceinfogetdevicetype) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取设备的类型。                                             |
107| [OH_AI_DeviceInfoSetEnableFP16](#oh_ai_deviceinfosetenablefp16) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, bool is_fp16) | 设置是否开启float16推理模式,仅CPU/GPU设备可用。             |
108| [OH_AI_DeviceInfoGetEnableFP16](#oh_ai_deviceinfogetenablefp16) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取是否开启float16推理模式, 仅CPU/GPU设备可用。             |
109| [OH_AI_DeviceInfoSetFrequency](#oh_ai_deviceinfosetfrequency) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, int frequency) | 设置NPU的频率,仅NPU设备可用。                               |
110| [OH_AI_DeviceInfoGetFrequency](#oh_ai_deviceinfogetfrequency) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取NPU的频率类型,仅NPU设备可用。                           |
111| [OH_AI_GetAllNNRTDeviceDescs](#oh_ai_getallnnrtdevicedescs) (size_t \*num) | 获取系统中所有NNRT硬件设备的描述信息。                       |
112| [OH_AI_GetElementOfNNRTDeviceDescs](#oh_ai_getelementofnnrtdevicedescs) (NNRTDeviceDesc \*descs, size_t index) | 获取NNRT设备描述信息数组中的元素指针。 |
113| [OH_AI_DestroyAllNNRTDeviceDescs](#oh_ai_destroyallnnrtdevicedescs) ([NNRTDeviceDesc](#nnrtdevicedesc) \*\*desc) | 销毁从[OH_AI_GetAllNNRTDeviceDescs](#oh_ai_getallnnrtdevicedescs)获取的NNRT描写信息实例数组。 |
114| [OH_AI_GetDeviceIdFromNNRTDeviceDesc](#oh_ai_getdeviceidfromnnrtdevicedesc) (const [NNRTDeviceDesc](#nnrtdevicedesc) \*desc) | 从特定的NNRT设备描述信息实例获取NNRT设备ID。注意,此ID只对NNRT有效。 |
115| [OH_AI_GetNameFromNNRTDeviceDesc](#oh_ai_getnamefromnnrtdevicedesc) (const [NNRTDeviceDesc](#nnrtdevicedesc) \*desc) | 从特定的NNRT设备描述信息实例获取NNRT设备名称。               |
116| [OH_AI_GetTypeFromNNRTDeviceDesc](#oh_ai_gettypefromnnrtdevicedesc) (const [NNRTDeviceDesc](#nnrtdevicedesc) \*desc) | 从特定的NNRT设备描述信息实例获取NNRT设备类型。               |
117| [OH_AI_CreateNNRTDeviceInfoByName](#oh_ai_creatennrtdeviceinfobyname) (const char \*name) | 查找指定名称的NNRT设备,根据找到的第一个设备信息,创建NNRT设备信息。 |
118| [OH_AI_CreateNNRTDeviceInfoByType](#oh_ai_creatennrtdeviceinfobytype) ([OH_AI_NNRTDeviceType](#oh_ai_nnrtdevicetype) type) | 查找指定类型的NNRT设备,根据找到的第一个设备信息,创建NNRT设备信息。 |
119| [OH_AI_DeviceInfoSetDeviceId](#oh_ai_deviceinfosetdeviceid) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, size_t device_id) | 设置NNRT设备ID,仅NNRT设备可用。                             |
120| [OH_AI_DeviceInfoGetDeviceId](#oh_ai_deviceinfogetdeviceid) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取NNRT设备ID,仅NNRT设备可用。                             |
121| [OH_AI_DeviceInfoSetPerformanceMode](#oh_ai_deviceinfosetperformancemode) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, [OH_AI_PerformanceMode](#oh_ai_performancemode) mode) | 设置NNRT性能模式,仅NNRT设备可用。                           |
122| [OH_AI_DeviceInfoGetPerformanceMode](#oh_ai_deviceinfogetperformancemode) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取NNRT性能模式,仅NNRT设备可用。                           |
123| [OH_AI_DeviceInfoSetPriority](#oh_ai_deviceinfosetpriority) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, [OH_AI_Priority](#oh_ai_priority) priority) | 设置NNRT任务优先级,仅NNRT设备可用。                         |
124| [OH_AI_DeviceInfoGetPriority](#oh_ai_deviceinfogetpriority) (const [OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info) | 获取NNRT任务优先级,仅NNRT设备可用。                         |
125| [OH_AI_ModelCreate](#oh_ai_modelcreate) ()                   | 创建一个模型对象。                                           |
126| [OH_AI_ModelDestroy](#oh_ai_modeldestroy) ([OH_AI_ModelHandle](#oh_ai_modelhandle) \*model) | 释放一个模型对象。                                           |
127| [OH_AI_ModelBuild](#oh_ai_modelbuild) ([OH_AI_ModelHandle](#oh_ai_modelhandle) model, const void \*model_data, size_t data_size, [OH_AI_ModelType](#oh_ai_modeltype) model_type, const [OH_AI_ContextHandle](#oh_ai_contexthandle) model_context) | 从内存缓冲区加载并编译MindSpore模型。                        |
128| [OH_AI_ModelBuildFromFile](#oh_ai_modelbuildfromfile) ([OH_AI_ModelHandle](#oh_ai_modelhandle) model, const char \*model_path, [OH_AI_ModelType](#oh_ai_modeltype) model_type, const [OH_AI_ContextHandle](#oh_ai_contexthandle) model_context) | 通过模型文件加载并编译MindSpore模型。                        |
129| [OH_AI_ModelResize](#oh_ai_modelresize) ([OH_AI_ModelHandle](#oh_ai_modelhandle) model, const [OH_AI_TensorHandleArray](_o_h___a_i___tensor_handle_array.md) inputs, [OH_AI_ShapeInfo](_o_h___a_i___shape_info.md) \*shape_infos, size_t shape_info_num) | 调整已编译模型的输入形状。                                   |
130| [OH_AI_ModelPredict](#oh_ai_modelpredict) ([OH_AI_ModelHandle](#oh_ai_modelhandle) model, const [OH_AI_TensorHandleArray](_o_h___a_i___tensor_handle_array.md) inputs, [OH_AI_TensorHandleArray](_o_h___a_i___tensor_handle_array.md) \*outputs, const [OH_AI_KernelCallBack](#oh_ai_kernelcallback) before, const [OH_AI_KernelCallBack](#oh_ai_kernelcallback) after) | 执行模型推理。                                               |
131| [OH_AI_ModelGetInputs](#oh_ai_modelgetinputs) (const [OH_AI_ModelHandle](#oh_ai_modelhandle) model) | 获取模型的输入张量数组结构体。                               |
132| [OH_AI_ModelGetOutputs](#oh_ai_modelgetoutputs) (const [OH_AI_ModelHandle](#oh_ai_modelhandle) model) | 获取模型的输出张量数组结构体。                               |
133| [OH_AI_ModelGetInputByTensorName](#oh_ai_modelgetinputbytensorname) (const [OH_AI_ModelHandle](#oh_ai_modelhandle) model, const char \*tensor_name) | 通过张量名获取模型的输入张量。                               |
134| [OH_AI_ModelGetOutputByTensorName](#oh_ai_modelgetoutputbytensorname) (const [OH_AI_ModelHandle](#oh_ai_modelhandle) model, const char \*tensor_name) | 通过张量名获取模型的输出张量。                               |
135| [OH_AI_DeviceInfoAddExtension](#oh_ai_deviceinfoaddextension) ([OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle) device_info, const char \*name, const char \*value, size_t value_size) | 向设备信息中添加键/值对形式的扩展配置。只对NNRT设备信息有效。 |
136| [OH_AI_TensorCreate](#oh_ai_tensorcreate) (const char \*name, [OH_AI_DataType](#oh_ai_datatype) type, const int64_t \*shape, size_t shape_num, const void \*data, size_t data_len) | 创建一个张量对象。                                           |
137| [OH_AI_TensorDestroy](#oh_ai_tensordestroy) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) \*tensor) | 释放张量对象。                                               |
138| [OH_AI_TensorClone](#oh_ai_tensorclone) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 深拷贝一个张量。                                             |
139| [OH_AI_TensorSetName](#oh_ai_tensorsetname) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, const char \*name) | 设置张量的名称。                                             |
140| [OH_AI_TensorGetName](#oh_ai_tensorgetname) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取张量的名称。                                             |
141| [OH_AI_TensorSetDataType](#oh_ai_tensorsetdatatype) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, [OH_AI_DataType](#oh_ai_datatype) type) | 设置张量的数据类型。                                         |
142| [OH_AI_TensorGetDataType](#oh_ai_tensorgetdatatype) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取张量类型。                                               |
143| [OH_AI_TensorSetShape](#oh_ai_tensorsetshape) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, const int64_t \*shape, size_t shape_num) | 设置张量的形状。                                             |
144| [OH_AI_TensorGetShape](#oh_ai_tensorgetshape) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, size_t \*shape_num) | 获取张量的形状。                                             |
145| [OH_AI_TensorSetFormat](#oh_ai_tensorsetformat) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, [OH_AI_Format](#oh_ai_format) format) | 设置张量数据的排列方式。                                     |
146| [OH_AI_TensorGetFormat](#oh_ai_tensorgetformat) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取张量数据的排列方式。                                     |
147| [OH_AI_TensorSetData](#oh_ai_tensorsetdata) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, void \*data) | 设置张量的数据。                                             |
148| [OH_AI_TensorGetData](#oh_ai_tensorgetdata) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取张量数据的指针。                                         |
149| [OH_AI_TensorGetMutableData](#oh_ai_tensorgetmutabledata) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取可变的张量数据指针。如果数据为空则会开辟内存。           |
150| [OH_AI_TensorGetElementNum](#oh_ai_tensorgetelementnum) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取张量元素数量。                                           |
151| [OH_AI_TensorGetDataSize](#oh_ai_tensorgetdatasize) (const [OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor) | 获取张量中的数据的字节数大小。                               |
152| [OH_AI_TensorSetUserData](#oh_ai_tensorsetuserdata) ([OH_AI_TensorHandle](#oh_ai_tensorhandle) tensor, void \*data, size_t data_size) | 设置张量为用户自行管理的数据。此接口常用于复用用户数据作为模型输入,可减少一次数据拷贝。 |
153
154## 宏定义说明
155
156
157### OH_AI_MAX_SHAPE_NUM
158
159
160```
161#define OH_AI_MAX_SHAPE_NUM   32
162```
163
164**描述:**
165
166张量维度的最大值。
167
168
169## 类型定义说明
170
171
172### NNRTDeviceDesc
173
174
175```
176typedef struct NNRTDeviceDesc NNRTDeviceDesc
177```
178
179**描述:**
180
181NNRT设备信息描述,包含设备ID,设备名称等信息。
182
183**起始版本:**
184
18510
186
187
188### OH_AI_CallBackParam
189
190
191```
192typedef struct OH_AI_CallBackParam OH_AI_CallBackParam
193```
194
195**描述:**
196
197回调函数中传入的算子信息。
198
199
200### OH_AI_ContextHandle
201
202
203```
204typedef void* OH_AI_ContextHandle
205```
206
207**描述:**
208
209Mindspore的上下文信息的指针,该指针会指向Context。
210
211
212### OH_AI_DataType
213
214
215```
216typedef enum OH_AI_DataType OH_AI_DataType
217```
218
219**描述:**
220
221MSTensor保存的数据支持的类型。
222
223
224### OH_AI_DeviceInfoHandle
225
226
227```
228typedef void* OH_AI_DeviceInfoHandle
229```
230
231**描述:**
232
233Mindspore的运行设备信息的指针。
234
235
236### OH_AI_DeviceType
237
238
239```
240typedef enum OH_AI_DeviceType OH_AI_DeviceType
241```
242
243**描述:**
244
245设备类型信息,包含了目前支持的设备类型。
246
247
248### OH_AI_Format
249
250
251```
252typedef enum OH_AI_Format OH_AI_Format
253```
254
255**描述:**
256
257MSTensor保存的数据支持的排列格式。
258
259
260### OH_AI_KernelCallBack
261
262
263```
264typedef bool(* OH_AI_KernelCallBack) (const OH_AI_TensorHandleArray inputs, const OH_AI_TensorHandleArray outputs, const OH_AI_CallBackParam kernel_Info)
265```
266
267**描述:**
268
269回调函数指针。
270
271该函数指针是用于设置[OH_AI_ModelPredict](#oh_ai_modelpredict)函数参数中的两个回调函数。 该指针指向的函数需要包含三个参数,其中inputs和outputs对应了算子的输入和输出张量,kernel_Info表示当前算子的信息。 可以通过回调函数监控算子执行的情况,例如统计算子的执行时间,校验算子的正确性等等。
272
273
274### OH_AI_ModelHandle
275
276
277```
278typedef void* OH_AI_ModelHandle
279```
280
281**描述:**
282
283指向模型对象的指针。
284
285
286### OH_AI_ModelType
287
288
289```
290typedef enum OH_AI_ModelType OH_AI_ModelType
291```
292
293**描述:**
294
295模型文件的类型。
296
297
298### OH_AI_NNRTDeviceType
299
300
301```
302typedef enum OH_AI_NNRTDeviceType OH_AI_NNRTDeviceType
303```
304
305**描述:**
306
307NNRT管理的硬件设备类型。
308
309**起始版本:**
310
31110
312
313
314### OH_AI_PerformanceMode
315
316
317```
318typedef enum OH_AI_PerformanceMode OH_AI_PerformanceMode
319```
320
321**描述:**
322
323NNRT硬件的工作性能模式。
324
325**起始版本:**
326
32710
328
329
330### OH_AI_Priority
331
332
333```
334typedef enum OH_AI_Priority OH_AI_Priority
335```
336
337**描述:**
338
339NNRT推理任务优先级。
340
341**起始版本:**
342
34310
344
345
346### OH_AI_Status
347
348
349```
350typedef enum OH_AI_Status OH_AI_Status
351```
352
353**描述:**
354
355Minspore的状态码。
356
357
358### OH_AI_TensorHandle
359
360
361```
362typedef void* OH_AI_TensorHandle
363```
364
365**描述:**
366
367指向张量对象句柄。
368
369
370### OH_AI_TensorHandleArray
371
372
373```
374typedef struct OH_AI_TensorHandleArray OH_AI_TensorHandleArray
375```
376
377**描述:**
378
379张量数组结构体,用于存储张量数组指针和张量数组长度。
380
381
382## 枚举类型说明
383
384
385### OH_AI_CompCode
386
387
388```
389enum OH_AI_CompCode
390```
391
392**描述:**
393
394Minspore不同组件的代码。
395
396| 枚举值              | 描述                  |
397| ------------------- | --------------------- |
398| OH_AI_COMPCODE_CORE | Minspore Core的代码。 |
399| OH_AI_COMPCODE_LITE | Minspore Lite的代码。 |
400
401
402### OH_AI_DataType
403
404
405```
406enum OH_AI_DataType
407```
408
409**描述:**
410
411MSTensor保存的数据支持的类型。
412
413| 枚举值                            | 描述                   |
414| --------------------------------- | ---------------------- |
415| OH_AI_DATATYPE_UNKNOWN            | 未知的数据类型。       |
416| OH_AI_DATATYPE_OBJECTTYPE_STRING  | String数据类型。       |
417| OH_AI_DATATYPE_OBJECTTYPE_LIST    | List数据类型。         |
418| OH_AI_DATATYPE_OBJECTTYPE_TUPLE   | Tuple数据类型。        |
419| OH_AI_DATATYPE_OBJECTTYPE_TENSOR  | TensorList数据类型。   |
420| OH_AI_DATATYPE_NUMBERTYPE_BEGIN   | Number类型的起始。     |
421| OH_AI_DATATYPE_NUMBERTYPE_BOOL    | Bool数据类型。         |
422| OH_AI_DATATYPE_NUMBERTYPE_INT8    | Int8数据类型。         |
423| OH_AI_DATATYPE_NUMBERTYPE_INT16   | 表示Int16数据类型。    |
424| OH_AI_DATATYPE_NUMBERTYPE_INT32   | 表示Int32数据类型。    |
425| OH_AI_DATATYPE_NUMBERTYPE_INT64   | 表示Int64数据类型。    |
426| OH_AI_DATATYPE_NUMBERTYPE_UINT8   | 表示UInt8数据类型。    |
427| OH_AI_DATATYPE_NUMBERTYPE_UINT16  | 表示UInt16数据类型。   |
428| OH_AI_DATATYPE_NUMBERTYPE_UINT32  | 表示UInt32数据类型。   |
429| OH_AI_DATATYPE_NUMBERTYPE_UINT64  | 表示UInt64数据类型。   |
430| OH_AI_DATATYPE_NUMBERTYPE_FLOAT16 | 表示Float16数据类型。  |
431| OH_AI_DATATYPE_NUMBERTYPE_FLOAT32 | 表示Float32数据类型。  |
432| OH_AI_DATATYPE_NUMBERTYPE_FLOAT64 | 表示Float64数据类型。  |
433| OH_AI_DATATYPE_NUMBERTYPE_END     | 表示Number类型的结尾。 |
434| OH_AI_DataTypeInvalid             | 表示无效的数据类型。   |
435
436
437### OH_AI_DeviceType
438
439
440```
441enum OH_AI_DeviceType
442```
443
444**描述:**
445
446设备类型信息,包含了目前支持的设备类型。
447
448| 枚举值                     | 描述                                    |
449| -------------------------- | --------------------------------------- |
450| OH_AI_DEVICETYPE_CPU       | 设备类型是CPU。                         |
451| OH_AI_DEVICETYPE_GPU       | 设备类型是GPU。预留选项, 暂不支持。    |
452| OH_AI_DEVICETYPE_KIRIN_NPU | 设备类型是麒麟NPU。预留选项,暂不支持。 |
453| OH_AI_DEVICETYPE_NNRT      | 设备类型是NNRt。OHOS设备范围是[60,80)。 |
454| OH_AI_DEVICETYPE_INVALID   | 设备类型无效。                          |
455
456
457### OH_AI_Format
458
459
460```
461enum OH_AI_Format
462```
463
464**描述:**
465
466MSTensor保存的数据支持的排列格式。
467
468| 枚举值              | 描述             |
469| ------------------- | ---------------- |
470| OH_AI_FORMAT_NCHW   | 按批次N、通道C、高度H和宽度W的顺序存储张量数据。   |
471| OH_AI_FORMAT_NHWC   | 按批次N、高度H、宽度W和通道C的顺序存储张量数据。   |
472| OH_AI_FORMAT_NHWC4  | 按批次N、高度H、宽度W和通道C的顺序存储张量数据,其中C轴是4字节对齐格式。   |
473| OH_AI_FORMAT_HWKC   | 按高度H、宽度W、核数K和通道C的顺序存储张量数据。    |
474| OH_AI_FORMAT_HWCK   | 按高度H、宽度W、通道C和核数K的顺序存储张量数据。   |
475| OH_AI_FORMAT_KCHW   | 按核数K、通道C、高度H和宽度W的顺序存储张量数据。   |
476| OH_AI_FORMAT_CKHW   | 按通道C、核数K、高度H和宽度W的顺序存储张量数据。   |
477| OH_AI_FORMAT_KHWC   | 按核数K、高度H、宽度W和通道C的顺序存储张量数据。    |
478| OH_AI_FORMAT_CHWK   | 按通道C、高度H、宽度W和核数K的顺序存储张量数据。   |
479| OH_AI_FORMAT_HW     | 按高度H和宽度W的顺序存储张量数据。     |
480| OH_AI_FORMAT_HW4    | 按高度H和宽度W的顺序存储张量数据,其中W轴是4字节对齐格式。    |
481| OH_AI_FORMAT_NC     | 按批次N和通道C的顺序存储张量数据。     |
482| OH_AI_FORMAT_NC4    | 按批次N和通道C的顺序存储张量数据,其中C轴是4字节对齐格式。     |
483| OH_AI_FORMAT_NC4HW4 | 按批次N、通道C、高度H和宽度W的顺序存储张量数据,其中C轴和W轴是4字节对齐格式。 |
484| OH_AI_FORMAT_NCDHW  | 按批次N、通道C、深度D、高度H和宽度W的顺序存储张量数据。  |
485| OH_AI_FORMAT_NWC    | 按批次N、宽度W和通道C的顺序存储张量数据。    |
486| OH_AI_FORMAT_NCW    | 按批次N、通道C和宽度W的顺序存储张量数据。    |
487
488
489### OH_AI_ModelType
490
491
492```
493enum OH_AI_ModelType
494```
495
496**描述:**
497
498模型文件的类型。
499
500| 枚举值                  | 描述               |
501| ----------------------- | ------------------ |
502| OH_AI_MODELTYPE_MINDIR  | 模型类型是MindIR,对应的模型文件后缀为.ms。 |
503| OH_AI_MODELTYPE_INVALID | 模型类型无效。     |
504
505
506### OH_AI_NNRTDeviceType
507
508
509```
510enum OH_AI_NNRTDeviceType
511```
512
513**描述:**
514
515NNRT管理的硬件设备类型。
516
517**起始版本**:
518
51910
520
521| 枚举值                       | 描述                                |
522| ---------------------------- | ----------------------------------- |
523| OH_AI_NNRTDEVICE_OTHERS      | 设备类型不属于以下3种,则属于其它。 |
524| OH_AI_NNRTDEVICE_CPU         | CPU设备。                           |
525| OH_AI_NNRTDEVICE_GPU         | GPU设备。                           |
526| OH_AI_NNRTDEVICE_ACCELERATOR | 特定的加速设备。                    |
527
528
529### OH_AI_PerformanceMode
530
531
532```
533enum OH_AI_PerformanceMode
534```
535
536**描述:**
537
538NNRT硬件的工作性能模式。
539
540**起始版本**:
541
54210
543
544| 枚举值                    | 描述                |
545| ------------------------- | ------------------- |
546| OH_AI_PERFORMANCE_NONE    | 无特殊设置。        |
547| OH_AI_PERFORMANCE_LOW     | 低功耗模式。        |
548| OH_AI_PERFORMANCE_MEDIUM  | 功耗-性能均衡模式。 |
549| OH_AI_PERFORMANCE_HIGH    | 高性能模式。        |
550| OH_AI_PERFORMANCE_EXTREME | 极致性能模式。      |
551
552
553### OH_AI_Priority
554
555
556```
557enum OH_AI_Priority
558```
559
560**描述:**
561
562NNRT推理任务优先级。
563
564**起始版本**:
565
56610
567
568| 枚举值                | 描述           |
569| --------------------- | -------------- |
570| OH_AI_PRIORITY_NONE   | 无优先级偏好。 |
571| OH_AI_PRIORITY_LOW    | 低优先级任务。 |
572| OH_AI_PRIORITY_MEDIUM | 中优先级任务。 |
573| OH_AI_PRIORITY_HIGH   | 高优先级。     |
574
575
576### OH_AI_Status
577
578
579```
580enum OH_AI_Status
581```
582
583**描述:**
584
585Minspore的状态码。
586
587| 枚举值                                | 描述                                      |
588| ------------------------------------- | ----------------------------------------- |
589| OH_AI_STATUS_SUCCESS                  | 通用的成功状态码。                        |
590| OH_AI_STATUS_CORE_FAILED              | Mindspore Core 失败状态码。               |
591| OH_AI_STATUS_LITE_ERROR               | Mindspore Lite 异常状态码。               |
592| OH_AI_STATUS_LITE_NULLPTR             | Mindspore Lite 空指针状态码。             |
593| OH_AI_STATUS_LITE_PARAM_INVALID       | Mindspore Lite 参数异常状态码。           |
594| OH_AI_STATUS_LITE_NO_CHANGE           | Mindspore Lite 未改变状态码。             |
595| OH_AI_STATUS_LITE_SUCCESS_EXIT        | Mindspore Lite 没有错误但是退出的状态码。 |
596| OH_AI_STATUS_LITE_MEMORY_FAILED       | Mindspore Lite 内存分配失败的状态码。     |
597| OH_AI_STATUS_LITE_NOT_SUPPORT         | Mindspore Lite 功能未支持的状态码。       |
598| OH_AI_STATUS_LITE_THREADPOOL_ERROR    | Mindspore Lite 线程池异常状态码。         |
599| OH_AI_STATUS_LITE_UNINITIALIZED_OBJ   | Mindspore Lite 未初始化状态码。           |
600| OH_AI_STATUS_LITE_OUT_OF_TENSOR_RANGE | Mindspore Lite 张量溢出错误的状态码。     |
601| OH_AI_STATUS_LITE_INPUT_TENSOR_ERROR  | Mindspore Lite 输入张量异常的状态码。     |
602| OH_AI_STATUS_LITE_REENTRANT_ERROR     | Mindspore Lite 重入异常的状态码。         |
603| OH_AI_STATUS_LITE_GRAPH_FILE_ERROR    | Mindspore Lite 文件异常状态码。           |
604| OH_AI_STATUS_LITE_NOT_FIND_OP         | Mindspore Lite 未找到算子的状态码。       |
605| OH_AI_STATUS_LITE_INVALID_OP_NAME     | Mindspore Lite 无效算子状态码。           |
606| OH_AI_STATUS_LITE_INVALID_OP_ATTR     | Mindspore Lite 无效算子超参数状态码。     |
607| OH_AI_STATUS_LITE_OP_EXECUTE_FAILURE  | Mindspore Lite 算子执行失败的状态码。     |
608| OH_AI_STATUS_LITE_FORMAT_ERROR        | Mindspore Lite 张量格式异常状态码。       |
609| OH_AI_STATUS_LITE_INFER_ERROR         | Mindspore Lite 形状推理异常状态码。       |
610| OH_AI_STATUS_LITE_INFER_INVALID       | Mindspore Lite 无效的形状推理的状态码。   |
611| OH_AI_STATUS_LITE_INPUT_PARAM_INVALID | Mindspore Lite 用户输入的参数无效状态码。 |
612
613## 函数说明
614
615
616### OH_AI_ContextAddDeviceInfo()
617
618
619```
620OH_AI_API void OH_AI_ContextAddDeviceInfo (OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info )
621```
622
623**描述:**
624
625将一个用户定义的运行设备信息附加到推理上下文中。
626
627**参数:**
628
629| 名称        | 描述                                                         |
630| ----------- | ------------------------------------------------------------ |
631| context     | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
632| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
633
634
635### OH_AI_ContextCreate()
636
637
638```
639OH_AI_API OH_AI_ContextHandle OH_AI_ContextCreate ()
640```
641
642**描述:**
643
644创建一个上下文的对象。
645
646**返回:**
647
648指向上下文信息的[OH_AI_ContextHandle](#oh_ai_contexthandle)。
649
650
651### OH_AI_ContextDestroy()
652
653
654```
655OH_AI_API void OH_AI_ContextDestroy (OH_AI_ContextHandle * context)
656```
657
658**描述:**
659
660释放上下文对象。
661
662**参数:**
663
664| 名称    | 描述                                                         |
665| ------- | ------------------------------------------------------------ |
666| context | 指向[OH_AI_ContextHandle](#oh_ai_contexthandle)的二级指针,上下文销毁后会对context置为空指针。 |
667
668
669### OH_AI_ContextGetEnableParallel()
670
671
672```
673OH_AI_API bool OH_AI_ContextGetEnableParallel (const OH_AI_ContextHandle context)
674```
675
676**描述:**
677
678获取是否支持算子间并行。
679
680**参数:**
681
682| 名称    | 描述                                                         |
683| ------- | ------------------------------------------------------------ |
684| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
685
686**返回:**
687
688是否支持并行。true 为支持并行, false 为不支持并行。
689
690
691### OH_AI_ContextGetThreadAffinityCoreList()
692
693
694```
695OH_AI_API const int32_t* OH_AI_ContextGetThreadAffinityCoreList (const OH_AI_ContextHandle context, size_t * core_num )
696```
697
698**描述:**
699
700获取CPU绑核列表。
701
702**参数:**
703
704| 名称     | 描述                                                         |
705| -------- | ------------------------------------------------------------ |
706| context  | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
707| core_num | 该参数是输出参数,表示核的数量。                             |
708
709**返回:**
710
711CPU绑核列表。此列表对象由[OH_AI_ContextHandle](#oh_ai_contexthandle)管理,调用者无须手动释放。
712
713
714### OH_AI_ContextGetThreadAffinityMode()
715
716
717```
718OH_AI_API int OH_AI_ContextGetThreadAffinityMode (const OH_AI_ContextHandle context)
719```
720
721**描述:**
722
723获取运行时线程绑定CPU核心的策略。
724
725**参数:**
726
727| 名称    | 描述                                                         |
728| ------- | ------------------------------------------------------------ |
729| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
730
731**返回:**
732
733绑核策略。一共有三种策略,0为不绑核, 1为大核优先, 2为中核优先。
734
735
736### OH_AI_ContextGetThreadNum()
737
738
739```
740OH_AI_API int32_t OH_AI_ContextGetThreadNum (const OH_AI_ContextHandle context)
741```
742
743**描述:**
744
745获取线程数量。
746
747**参数:**
748
749| 名称    | 描述                                                         |
750| ------- | ------------------------------------------------------------ |
751| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
752
753**返回:**
754
755当前的线程数量。
756
757
758### OH_AI_ContextSetEnableParallel()
759
760
761```
762OH_AI_API void OH_AI_ContextSetEnableParallel (OH_AI_ContextHandle context, bool is_parallel )
763```
764
765**描述:**
766
767设置运行时是否支持并行。此接口特性当前未开启,设置无效。
768
769**参数:**
770
771| 名称        | 描述                                                         |
772| ----------- | ------------------------------------------------------------ |
773| context     | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
774| is_parallel | 是否支持并行。true 为支持并行, false 为不支持并行。          |
775
776
777### OH_AI_ContextSetThreadAffinityCoreList()
778
779
780```
781OH_AI_API void OH_AI_ContextSetThreadAffinityCoreList (OH_AI_ContextHandle context, const int32_t * core_list, size_t core_num )
782```
783
784**描述:**
785
786设置运行时线程绑定CPU核心的列表。
787
788例如:当core_list=[2,6,8]时,则线程会在CPU的第2,6,8个核心上运行。 如果对于同一个上下文对象,调用了[OH_AI_ContextSetThreadAffinityMode](#oh_ai_contextsetthreadaffinitymode)和[OH_AI_ContextSetThreadAffinityCoreList](#oh_ai_contextsetthreadaffinitycorelist) 这两个函数,则仅[OH_AI_ContextSetThreadAffinityCoreList](#oh_ai_contextsetthreadaffinitycorelist)的core_list参数生效,而[OH_AI_ContextSetThreadAffinityMode](#oh_ai_contextsetthreadaffinitymode)的 mode参数不生效。
789
790**参数:**
791
792| 名称      | 描述                                                         |
793| --------- | ------------------------------------------------------------ |
794| context   | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
795| core_list | CPU绑核的列表。                                              |
796| core_num  | 核的数量,它就代表**core_list**的长度。                      |
797
798
799### OH_AI_ContextSetThreadAffinityMode()
800
801
802```
803OH_AI_API void OH_AI_ContextSetThreadAffinityMode (OH_AI_ContextHandle context, int mode )
804```
805
806**描述:**
807
808设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。
809
810**参数:**
811
812| 名称    | 描述                                                         |
813| ------- | ------------------------------------------------------------ |
814| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
815| mode    | 绑核策略。一共有三种策略,0为不绑核, 1为大核优先, 2为中核优先。 |
816
817
818### OH_AI_ContextSetThreadNum()
819
820
821```
822OH_AI_API void OH_AI_ContextSetThreadNum (OH_AI_ContextHandle context, int32_t thread_num )
823```
824
825**描述:**
826
827设置运行时的线程数量。
828
829**参数:**
830
831| 名称       | 描述                                                         |
832| ---------- | ------------------------------------------------------------ |
833| context    | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle) |
834| thread_num | 运行时的线程数量。                                           |
835
836
837### OH_AI_CreateNNRTDeviceInfoByName()
838
839
840```
841OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByName (const char * name)
842```
843
844**描述:**
845
846查找指定名称的NNRT设备,根据找到的第一个设备信息,创建NNRT设备信息。
847
848**参数:**
849
850| 名称 | 描述             |
851| ---- | ---------------- |
852| name | 目标NNRT设备名。 |
853
854**返回:**
855
856指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。
857
858**起始版本:**
859
86010
861
862
863### OH_AI_CreateNNRTDeviceInfoByType()
864
865
866```
867OH_AI_API OH_AI_DeviceInfoHandle OH_AI_CreateNNRTDeviceInfoByType (OH_AI_NNRTDeviceType type)
868```
869
870**描述:**
871
872查找指定类型的NNRT设备,根据找到的第一个设备信息,创建NNRT设备信息。
873
874**参数:**
875
876| 名称 | 描述                                                         |
877| ---- | ------------------------------------------------------------ |
878| type | [OH_AI_NNRTDeviceType](#oh_ai_nnrtdevicetype) 目标NNRT设备类型。 |
879
880**返回:**
881
882指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。
883
884**起始版本:**
885
88610
887
888
889### OH_AI_DestroyAllNNRTDeviceDescs()
890
891
892```
893OH_AI_API void OH_AI_DestroyAllNNRTDeviceDescs (NNRTDeviceDesc ** desc)
894```
895
896**描述:**
897
898销毁从[OH_AI_GetAllNNRTDeviceDescs](#oh_ai_getallnnrtdevicedescs)获取的NNRT描写信息实例数组。
899
900**参数:**
901
902| 名称 | 描述                                                         |
903| ---- | ------------------------------------------------------------ |
904| desc | 指向NNRT设备描述信息实例数组的二重指针。销毁结束,desc指向内容会被置为NULL。 |
905
906**起始版本:**
907
90810
909
910
911### OH_AI_DeviceInfoCreate()
912
913
914```
915OH_AI_API OH_AI_DeviceInfoHandle OH_AI_DeviceInfoCreate (OH_AI_DeviceType device_type)
916```
917
918**描述:**
919
920创建一个设备信息对象。
921
922**参数:**
923
924| 名称        | 描述                                                    |
925| ----------- | ------------------------------------------------------- |
926| device_type | 设备类型, 具体见[OH_AI_DeviceType](#oh_ai_devicetype)。 |
927
928**返回:**
929
930指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。
931
932
933### OH_AI_DeviceInfoDestroy()
934
935
936```
937OH_AI_API void OH_AI_DeviceInfoDestroy (OH_AI_DeviceInfoHandle * device_info)
938```
939
940**描述:**
941
942释放设备信息实例。注意:设备信息实例被添加到context后,无需调用者手动释放。
943
944**参数:**
945
946| 名称        | 描述                                                         |
947| ----------- | ------------------------------------------------------------ |
948| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
949
950
951### OH_AI_DeviceInfoGetDeviceId()
952
953
954```
955OH_AI_API size_t OH_AI_DeviceInfoGetDeviceId (const OH_AI_DeviceInfoHandle device_info)
956```
957
958**描述:**
959
960获取NNRT设备ID,仅NNRT设备可用。
961
962**参数:**
963
964| 名称        | 描述                                                         |
965| ----------- | ------------------------------------------------------------ |
966| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
967
968**返回:**
969
970NNRT设备ID。
971
972**起始版本:**
973
97410
975
976
977### OH_AI_DeviceInfoGetDeviceType()
978
979
980```
981OH_AI_API OH_AI_DeviceType OH_AI_DeviceInfoGetDeviceType (const OH_AI_DeviceInfoHandle device_info)
982```
983
984**描述:**
985
986获取设备的类型。
987
988**参数:**
989
990| 名称        | 描述                                                         |
991| ----------- | ------------------------------------------------------------ |
992| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
993
994**返回:**
995
996生产商设备类型。
997
998
999### OH_AI_DeviceInfoGetEnableFP16()
1000
1001
1002```
1003OH_AI_API bool OH_AI_DeviceInfoGetEnableFP16 (const OH_AI_DeviceInfoHandle device_info)
1004```
1005
1006**描述:**
1007
1008获取是否开启float16推理模式, 仅CPU/GPU设备可用。
1009
1010**参数:**
1011
1012| 名称        | 描述                                                         |
1013| ----------- | ------------------------------------------------------------ |
1014| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1015
1016**返回:**
1017
1018设置是否开启float16推理模式。
1019
1020
1021### OH_AI_DeviceInfoGetFrequency()
1022
1023
1024```
1025OH_AI_API int OH_AI_DeviceInfoGetFrequency (const OH_AI_DeviceInfoHandle device_info)
1026```
1027
1028**描述:**
1029
1030获取NPU的频率类型,仅NPU设备可用。
1031
1032**参数:**
1033
1034| 名称        | 描述                                                         |
1035| ----------- | ------------------------------------------------------------ |
1036| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1037
1038**返回:**
1039
1040NPU的频率类型。取值范围为0-4,1表示低功耗,2表示平衡,3表示高性能,4表示超高性能。
1041
1042
1043### OH_AI_DeviceInfoGetPerformanceMode()
1044
1045
1046```
1047OH_AI_API OH_AI_PerformanceMode OH_AI_DeviceInfoGetPerformanceMode (const OH_AI_DeviceInfoHandle device_info)
1048```
1049
1050**描述:**
1051
1052获取NNRT性能模式,仅NNRT设备可用。
1053
1054**参数:**
1055
1056| 名称        | 描述                                                         |
1057| ----------- | ------------------------------------------------------------ |
1058| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1059
1060**返回:**
1061
1062[OH_AI_PerformanceMode](#oh_ai_performancemode) NNRT性能模式。
1063
1064**起始版本:**
1065
106610
1067
1068
1069### OH_AI_DeviceInfoGetPriority()
1070
1071
1072```
1073OH_AI_API OH_AI_Priority OH_AI_DeviceInfoGetPriority (const OH_AI_DeviceInfoHandle device_info)
1074```
1075
1076**描述:**
1077
1078获取NNRT任务优先级,仅NNRT设备可用。
1079
1080**参数:**
1081
1082| 名称        | 描述                                                         |
1083| ----------- | ------------------------------------------------------------ |
1084| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1085
1086**返回:**
1087
1088[OH_AI_Priority](#oh_ai_priority) NNRT任务优先级。
1089
1090**起始版本:**
1091
109210
1093
1094
1095### OH_AI_DeviceInfoGetProvider()
1096
1097
1098```
1099OH_AI_API const char* OH_AI_DeviceInfoGetProvider (const OH_AI_DeviceInfoHandle device_info)
1100```
1101
1102**描述:**
1103
1104获取生产商的名称。
1105
1106**参数:**
1107
1108| 名称        | 描述                                                         |
1109| ----------- | ------------------------------------------------------------ |
1110| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1111
1112**返回:**
1113
1114生产商的名称。
1115
1116
1117### OH_AI_DeviceInfoGetProviderDevice()
1118
1119
1120```
1121OH_AI_API const char* OH_AI_DeviceInfoGetProviderDevice (const OH_AI_DeviceInfoHandle device_info)
1122```
1123
1124**描述:**
1125
1126获取生产商设备的名称。
1127
1128**参数:**
1129
1130| 名称        | 描述                                                         |
1131| ----------- | ------------------------------------------------------------ |
1132| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1133
1134**返回:**
1135
1136生产商设备的名称。
1137
1138
1139### OH_AI_DeviceInfoSetDeviceId()
1140
1141
1142```
1143OH_AI_API void OH_AI_DeviceInfoSetDeviceId (OH_AI_DeviceInfoHandle device_info, size_t device_id )
1144```
1145
1146**描述:**
1147
1148设置NNRT设备ID,仅NNRT设备可用。
1149
1150**参数:**
1151
1152| 名称        | 描述                                                         |
1153| ----------- | ------------------------------------------------------------ |
1154| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1155| device_id   | NNRT设备ID。                                                 |
1156
1157**起始版本:**
1158
115910
1160
1161
1162### OH_AI_DeviceInfoSetEnableFP16()
1163
1164
1165```
1166OH_AI_API void OH_AI_DeviceInfoSetEnableFP16 (OH_AI_DeviceInfoHandle device_info, bool is_fp16 )
1167```
1168
1169**描述:**
1170
1171设置是否开启float16推理模式,仅CPU/GPU设备可用。
1172
1173**参数:**
1174
1175| 名称        | 描述                                                         |
1176| ----------- | ------------------------------------------------------------ |
1177| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1178| is_fp16     | 是否开启float16推理模式。                                    |
1179
1180
1181### OH_AI_DeviceInfoSetFrequency()
1182
1183
1184```
1185OH_AI_API void OH_AI_DeviceInfoSetFrequency (OH_AI_DeviceInfoHandle device_info, int frequency )
1186```
1187
1188**描述:**
1189
1190设置NPU的频率,仅NPU设备可用。
1191
1192**参数:**
1193
1194| 名称        | 描述                                                         |
1195| ----------- | ------------------------------------------------------------ |
1196| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1197| frequency   | 频率类型,取值范围为0-4,默认是3。1表示低功耗,2表示平衡,3表示高性能,4表示超高性能。 |
1198
1199
1200### OH_AI_DeviceInfoSetPerformanceMode()
1201
1202
1203```
1204OH_AI_API void OH_AI_DeviceInfoSetPerformanceMode (OH_AI_DeviceInfoHandle device_info, OH_AI_PerformanceMode mode )
1205```
1206
1207**描述:**
1208
1209设置NNRT性能模式,仅NNRT设备可用。
1210
1211**参数:**
1212
1213| 名称        | 描述                                                         |
1214| ----------- | ------------------------------------------------------------ |
1215| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1216| mode        | [OH_AI_PerformanceMode](#oh_ai_performancemode) NNRT性能模式。 |
1217
1218**起始版本**:
1219
122010
1221
1222
1223### OH_AI_DeviceInfoSetPriority()
1224
1225
1226```
1227OH_AI_API void OH_AI_DeviceInfoSetPriority (OH_AI_DeviceInfoHandle device_info, OH_AI_Priority priority )
1228```
1229
1230**描述:**
1231
1232设置NNRT任务优先级,仅NNRT设备可用。
1233
1234**参数:**
1235
1236| 名称        | 描述                                                         |
1237| ----------- | ------------------------------------------------------------ |
1238| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1239| priority    | [OH_AI_Priority](#oh_ai_priority) NNRT任务优先级。           |
1240
1241**起始版本:**
1242
124310
1244
1245
1246### OH_AI_DeviceInfoSetProvider()
1247
1248
1249```
1250OH_AI_API void OH_AI_DeviceInfoSetProvider (OH_AI_DeviceInfoHandle device_info, const char * provider )
1251```
1252
1253**描述:**
1254
1255设置供应商的名称。
1256
1257**参数:**
1258
1259| 名称        | 描述                                                         |
1260| ----------- | ------------------------------------------------------------ |
1261| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1262| provider    | 供应商的名称。                                               |
1263
1264
1265### OH_AI_DeviceInfoSetProviderDevice()
1266
1267
1268```
1269OH_AI_API void OH_AI_DeviceInfoSetProviderDevice (OH_AI_DeviceInfoHandle device_info, const char * device )
1270```
1271
1272**描述:**
1273
1274设置生产商设备的名称。
1275
1276**参数:**
1277
1278| 名称        | 描述                                                         |
1279| ----------- | ------------------------------------------------------------ |
1280| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
1281| device      | 生产商设备名称。例如: CPU。                                  |
1282
1283
1284### OH_AI_GetAllNNRTDeviceDescs()
1285
1286
1287```
1288OH_AI_API NNRTDeviceDesc* OH_AI_GetAllNNRTDeviceDescs (size_t * num)
1289```
1290
1291**描述:**
1292
1293获取系统中所有NNRT硬件设备的描述信息。
1294
1295**参数:**
1296
1297| 名称 | 描述                     |
1298| ---- | ------------------------ |
1299| num  | 输出参数,返回设备数量。 |
1300
1301**返回:**
1302
1303指向NNRT设备描述信息实例数组的指针。当获取失败时,返回NULL。
1304
1305**起始版本:**
1306
130710
1308
1309
1310### OH_AI_GetDeviceIdFromNNRTDeviceDesc()
1311
1312
1313```
1314OH_AI_API size_t OH_AI_GetDeviceIdFromNNRTDeviceDesc (const NNRTDeviceDesc * desc)
1315```
1316
1317**描述:**
1318
1319从特定的NNRT设备描述信息实例获取NNRT设备ID。注意,此ID只对NNRT有效。
1320
1321**参数:**
1322
1323| 名称 | 描述                             |
1324| ---- | -------------------------------- |
1325| desc | 指向NNRT设备描述信息实例的指针。 |
1326
1327**返回:**
1328
1329NNRT设备ID。
1330
1331**起始版本:**
1332
133310
1334
1335
1336### OH_AI_GetNameFromNNRTDeviceDesc()
1337
1338
1339```
1340OH_AI_API const char* OH_AI_GetNameFromNNRTDeviceDesc (const NNRTDeviceDesc * desc)
1341```
1342
1343**描述:**
1344
1345从特定的NNRT设备描述信息实例获取NNRT设备名称。
1346
1347**参数:**
1348
1349| 名称 | 描述                             |
1350| ---- | -------------------------------- |
1351| desc | 指向NNRT设备描述信息实例的指针。 |
1352
1353**返回:**
1354
1355NNRT设备名称,指向一个常量字符串的指针,该常量字符串由desc持有,调用者无需单独释放此指针。
1356
1357**起始版本:**
1358
135910
1360
1361
1362### OH_AI_GetTypeFromNNRTDeviceDesc()
1363
1364
1365```
1366OH_AI_API OH_AI_NNRTDeviceType OH_AI_GetTypeFromNNRTDeviceDesc (const NNRTDeviceDesc * desc)
1367```
1368
1369**描述:**
1370
1371从特定的NNRT设备描述信息实例获取NNRT设备类型。
1372
1373**参数:**
1374
1375| 名称 | 描述                             |
1376| ---- | -------------------------------- |
1377| desc | 指向NNRT设备描述信息实例的指针。 |
1378
1379**返回:**
1380
1381[OH_AI_NNRTDeviceType](#oh_ai_nnrtdevicetype) NNRT设备类型。
1382
1383**起始版本:**
1384
138510
1386
1387
1388### OH_AI_ModelBuild()
1389
1390
1391```
1392OH_AI_API OH_AI_Status 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 )
1393```
1394
1395**描述:**
1396
1397从内存缓冲区加载并编译MindSpore模型。
1398
1399注意,同一个[OH_AI_ContextHandle](#oh_ai_contexthandle)对象仅能传递给[OH_AI_ModelBuild](#oh_ai_modelbuild)或者[OH_AI_ModelBuildFromFile](#oh_ai_modelbuildfromfile)一次, 如果多次调用该函数需要创建多个不同的[OH_AI_ContextHandle](#oh_ai_contexthandle)。
1400
1401**参数:**
1402
1403| 名称          | 描述                                                         |
1404| ------------- | ------------------------------------------------------------ |
1405| model         | 模型对象指针。                                               |
1406| model_data    | 内存中已经加载的模型数据地址。                               |
1407| data_size     | 模型数据的长度。                                             |
1408| model_type    | 模型文件类型,具体见[OH_AI_ModelType](#oh_ai_modeltype)。    |
1409| model_context | 模型运行时的上下文环境,具体见 [OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
1410
1411**返回:**
1412
1413枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
1414
1415
1416### OH_AI_ModelBuildFromFile()
1417
1418
1419```
1420OH_AI_API OH_AI_Status OH_AI_ModelBuildFromFile (OH_AI_ModelHandle model, const char * model_path, OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context )
1421```
1422
1423**描述:**
1424
1425通过模型文件加载并编译MindSpore模型。
1426
1427注意,同一个[OH_AI_ContextHandle](#oh_ai_contexthandle)对象仅能传递给[OH_AI_ModelBuild](#oh_ai_modelbuild)或者[OH_AI_ModelBuildFromFile](#oh_ai_modelbuildfromfile)一次, 如果多次调用该函数需要创建多个不同的[OH_AI_ContextHandle](#oh_ai_contexthandle)。
1428
1429**参数:**
1430
1431| 名称          | 描述                                                         |
1432| ------------- | ------------------------------------------------------------ |
1433| model         | 模型对象指针。                                               |
1434| model_path    | 模型文件路径。                                               |
1435| model_type    | 模型文件类型,具体见[OH_AI_ModelType](#oh_ai_modeltype)。    |
1436| model_context | 模型运行时的上下文环境,具体见 [OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
1437
1438**返回:**
1439
1440枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
1441
1442
1443### OH_AI_ModelCreate()
1444
1445
1446```
1447OH_AI_API OH_AI_ModelHandle OH_AI_ModelCreate ()
1448```
1449
1450**描述:**
1451
1452创建一个模型对象。
1453
1454**返回:**
1455
1456模型对象指针。
1457
1458
1459### OH_AI_ModelDestroy()
1460
1461
1462```
1463OH_AI_API void OH_AI_ModelDestroy (OH_AI_ModelHandle * model)
1464```
1465
1466**描述:**
1467
1468释放一个模型对象。
1469
1470**参数:**
1471
1472| 名称  | 描述           |
1473| ----- | -------------- |
1474| model | 模型对象指针。 |
1475
1476
1477### OH_AI_ModelGetInputByTensorName()
1478
1479
1480```
1481OH_AI_API OH_AI_TensorHandle OH_AI_ModelGetInputByTensorName (const OH_AI_ModelHandle model, const char * tensor_name )
1482```
1483
1484**描述:**
1485
1486通过张量名获取模型的输入张量。
1487
1488**参数:**
1489
1490| 名称        | 描述           |
1491| ----------- | -------------- |
1492| model       | 模型对象指针。 |
1493| tensor_name | 张量名称。     |
1494
1495**返回:**
1496
1497tensor_name所对应的输入张量的张量指针,如果输入中没有该张量则返回空。
1498
1499
1500### OH_AI_ModelGetInputs()
1501
1502
1503```
1504OH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetInputs (const OH_AI_ModelHandle model)
1505```
1506
1507**描述:**
1508
1509获取模型的输入张量数组结构体。
1510
1511**参数:**
1512
1513| 名称  | 描述           |
1514| ----- | -------------- |
1515| model | 模型对象指针。 |
1516
1517**返回:**
1518
1519模型输入对应的张量数组结构体。
1520
1521
1522### OH_AI_ModelGetOutputByTensorName()
1523
1524
1525```
1526OH_AI_API OH_AI_TensorHandle OH_AI_ModelGetOutputByTensorName (const OH_AI_ModelHandle model, const char * tensor_name )
1527```
1528
1529**描述:**
1530
1531通过张量名获取模型的输出张量。
1532
1533**参数:**
1534
1535| 名称        | 描述           |
1536| ----------- | -------------- |
1537| model       | 模型对象指针。 |
1538| tensor_name | 张量名称。     |
1539
1540**返回:**
1541
1542tensor_name所对应的输入张量的张量指针,如果输出中没有该张量则返回空。
1543
1544
1545### OH_AI_ModelGetOutputs()
1546
1547
1548```
1549OH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetOutputs (const OH_AI_ModelHandle model)
1550```
1551
1552**描述:**
1553
1554获取模型的输出张量数组结构体。
1555
1556**参数:**
1557
1558| 名称  | 描述           |
1559| ----- | -------------- |
1560| model | 模型对象指针。 |
1561
1562**返回:**
1563
1564模型输出对应的张量数组结构体。
1565
1566
1567### OH_AI_ModelPredict()
1568
1569
1570```
1571OH_AI_API OH_AI_Status 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 )
1572```
1573
1574**描述:**
1575
1576执行模型推理。
1577
1578**参数:**
1579
1580| 名称    | 描述                                 |
1581| ------- | ------------------------------------ |
1582| model   | 模型对象指针。                       |
1583| inputs  | 模型输入对应的张量数组结构体。       |
1584| outputs | 模型输出对应的张量数组结构体的指针。 |
1585| before  | 模型推理前执行的回调函数。           |
1586| after   | 模型推理后执行的回调函数。           |
1587
1588**返回:**
1589
1590枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
1591
1592
1593### OH_AI_ModelResize()
1594
1595
1596```
1597OH_AI_API OH_AI_Status OH_AI_ModelResize (OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, OH_AI_ShapeInfo * shape_infos, size_t shape_info_num )
1598```
1599
1600**描述:**
1601
1602调整已编译模型的输入形状。
1603
1604**参数:**
1605
1606| 名称           | 描述                                                         |
1607| -------------- | ------------------------------------------------------------ |
1608| model          | 模型对象指针。                                               |
1609| inputs         | 模型输入对应的张量数组结构体。                               |
1610| shape_infos    | 输入形状信息数组,按模型输入顺序排列的由形状信息组成的数组,模型会按顺序依次调整张量形状。 |
1611| shape_info_num | 形状信息数组的长度。                                         |
1612
1613**返回:**
1614
1615枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
1616
1617
1618### OH_AI_TensorClone()
1619
1620
1621```
1622OH_AI_API OH_AI_TensorHandle OH_AI_TensorClone (OH_AI_TensorHandle tensor)
1623```
1624
1625**描述:**
1626
1627深拷贝一个张量。
1628
1629**参数:**
1630
1631| 名称   | 描述               |
1632| ------ | ------------------ |
1633| tensor | 待拷贝张量的指针。 |
1634
1635**返回:**
1636
1637指向新张量对象句柄。
1638
1639
1640### OH_AI_TensorCreate()
1641
1642
1643```
1644OH_AI_API OH_AI_TensorHandle OH_AI_TensorCreate (const char * name, OH_AI_DataType type, const int64_t * shape, size_t shape_num, const void * data, size_t data_len )
1645```
1646
1647**描述:**
1648
1649创建一个张量对象。
1650
1651**参数:**
1652
1653| 名称      | 描述               |
1654| --------- | ------------------ |
1655| name      | 张量名称           |
1656| type      | 张量的数据类型     |
1657| shape     | 张量的维度数组。   |
1658| shape_num | 张量维度数组长度。 |
1659| data      | 指向数据的指针。   |
1660| data_len  | 数据的长度。       |
1661
1662**返回:**
1663
1664指向张量对象句柄。
1665
1666
1667### OH_AI_TensorDestroy()
1668
1669
1670```
1671OH_AI_API void OH_AI_TensorDestroy (OH_AI_TensorHandle * tensor)
1672```
1673
1674**描述:**
1675
1676释放张量对象。
1677
1678**参数:**
1679
1680| 名称   | 描述                     |
1681| ------ | ------------------------ |
1682| tensor | 指向张量句柄的二级指针。 |
1683
1684
1685### OH_AI_TensorGetData()
1686
1687
1688```
1689OH_AI_API const void* OH_AI_TensorGetData (const OH_AI_TensorHandle tensor)
1690```
1691
1692**描述:**
1693
1694获取张量数据的指针。
1695
1696**参数:**
1697
1698| 名称   | 描述           |
1699| ------ | -------------- |
1700| tensor | 张量对象句柄。 |
1701
1702**返回:**
1703
1704张量数据的指针。
1705
1706
1707### OH_AI_TensorGetDataSize()
1708
1709
1710```
1711OH_AI_API size_t OH_AI_TensorGetDataSize (const OH_AI_TensorHandle tensor)
1712```
1713
1714**描述:**
1715
1716获取张量中的数据的字节数大小。
1717
1718**参数:**
1719
1720| 名称   | 描述           |
1721| ------ | -------------- |
1722| tensor | 张量对象句柄。 |
1723
1724**返回:**
1725
1726张量数据的字节数大小。
1727
1728
1729### OH_AI_TensorGetDataType()
1730
1731
1732```
1733OH_AI_API OH_AI_DataType OH_AI_TensorGetDataType (const OH_AI_TensorHandle tensor)
1734```
1735
1736**描述:**
1737
1738获取张量类型。
1739
1740**参数:**
1741
1742| 名称   | 描述           |
1743| ------ | -------------- |
1744| tensor | 张量对象句柄。 |
1745
1746**返回:**
1747
1748张量的数据类型。
1749
1750
1751### OH_AI_TensorGetElementNum()
1752
1753
1754```
1755OH_AI_API int64_t OH_AI_TensorGetElementNum (const OH_AI_TensorHandle tensor)
1756```
1757
1758**描述:**
1759
1760获取张量元素数量。
1761
1762**参数:**
1763
1764| 名称   | 描述           |
1765| ------ | -------------- |
1766| tensor | 张量对象句柄。 |
1767
1768**返回:**
1769
1770张量的元素数量。
1771
1772
1773### OH_AI_TensorGetFormat()
1774
1775
1776```
1777OH_AI_API OH_AI_Format OH_AI_TensorGetFormat (const OH_AI_TensorHandle tensor)
1778```
1779
1780**描述:**
1781
1782获取张量数据的排列方式。
1783
1784**参数:**
1785
1786| 名称   | 描述           |
1787| ------ | -------------- |
1788| tensor | 张量对象句柄。 |
1789
1790**返回:**
1791
1792张量数据的排列方式。
1793
1794
1795### OH_AI_TensorGetMutableData()
1796
1797
1798```
1799OH_AI_API void* OH_AI_TensorGetMutableData (const OH_AI_TensorHandle tensor)
1800```
1801
1802**描述:**
1803
1804获取可变的张量数据指针。如果数据为空则会开辟内存。
1805
1806**参数:**
1807
1808| 名称   | 描述           |
1809| ------ | -------------- |
1810| tensor | 张量对象句柄。 |
1811
1812**返回:**
1813
1814张量数据的指针。
1815
1816
1817### OH_AI_TensorGetName()
1818
1819
1820```
1821OH_AI_API const char* OH_AI_TensorGetName (const OH_AI_TensorHandle tensor)
1822```
1823
1824**描述:**
1825
1826获取张量的名称。
1827
1828**参数:**
1829
1830| 名称   | 描述           |
1831| ------ | -------------- |
1832| tensor | 张量对象句柄。 |
1833
1834**返回:**
1835
1836张量的名称。
1837
1838
1839### OH_AI_TensorGetShape()
1840
1841
1842```
1843OH_AI_API const int64_t* OH_AI_TensorGetShape (const OH_AI_TensorHandle tensor, size_t * shape_num )
1844```
1845
1846**描述:**
1847
1848获取张量的形状。
1849
1850**参数:**
1851
1852| 名称      | 描述                                           |
1853| --------- | ---------------------------------------------- |
1854| tensor    | 张量对象句柄。                                 |
1855| shape_num | 该参数是输出参数,形状数组的长度会写入该变量。 |
1856
1857**返回:**
1858
1859形状数组。
1860
1861
1862### OH_AI_TensorSetData()
1863
1864
1865```
1866OH_AI_API void OH_AI_TensorSetData (OH_AI_TensorHandle tensor, void * data )
1867```
1868
1869**描述:**
1870
1871设置张量的数据。
1872
1873**参数:**
1874
1875| 名称   | 描述             |
1876| ------ | ---------------- |
1877| tensor | 张量对象句柄。   |
1878| data   | 指向数据的指针。 |
1879
1880
1881### OH_AI_TensorSetDataType()
1882
1883
1884```
1885OH_AI_API void OH_AI_TensorSetDataType (OH_AI_TensorHandle tensor, OH_AI_DataType type )
1886```
1887
1888**描述:**
1889
1890设置张量的数据类型。
1891
1892**参数:**
1893
1894| 名称   | 描述                                                |
1895| ------ | --------------------------------------------------- |
1896| tensor | 张量对象句柄。                                      |
1897| type   | 数据类型,具体见[OH_AI_DataType](#oh_ai_datatype)。 |
1898
1899
1900### OH_AI_TensorSetFormat()
1901
1902
1903```
1904OH_AI_API void OH_AI_TensorSetFormat (OH_AI_TensorHandle tensor, OH_AI_Format format )
1905```
1906
1907**描述:**
1908
1909设置张量数据的排列方式。
1910
1911**参数:**
1912
1913| 名称   | 描述               |
1914| ------ | ------------------ |
1915| tensor | 张量对象句柄。     |
1916| format | 张量数据排列方式。 |
1917
1918
1919### OH_AI_TensorSetName()
1920
1921
1922```
1923OH_AI_API void OH_AI_TensorSetName (OH_AI_TensorHandle tensor, const char *name )
1924```
1925
1926**描述:**
1927
1928设置张量的名称。
1929
1930**参数:**
1931
1932| 名称   | 描述           |
1933| ------ | -------------- |
1934| tensor | 张量对象句柄。 |
1935| name   | 张量名称。     |
1936
1937
1938### OH_AI_TensorSetShape()
1939
1940
1941```
1942OH_AI_API void OH_AI_TensorSetShape (OH_AI_TensorHandle tensor, const int64_t * shape, size_t shape_num )
1943```
1944
1945**描述:**
1946
1947设置张量的形状。
1948
1949**参数:**
1950
1951| 名称      | 描述               |
1952| --------- | ------------------ |
1953| tensor    | 张量对象句柄。     |
1954| shape     | 形状数组。         |
1955| shape_num | 张量形状数组长度。 |
1956
1957
1958### OH_AI_TensorSetUserData()
1959
1960```
1961OH_AI_API OH_AI_Status OH_AI_TensorSetUserData (OH_AI_TensorHandle tensor, void * data, size_t data_size )
1962```
1963
1964**描述:**
1965
1966设置张量为用户自行管理的数据。
1967
1968此接口常用于复用用户数据作为模型输入,可减少一次数据拷贝。
1969
1970注意:此数据对于张量来说是外部数据,张量销毁时不会主动释放,由调用者负责释放。另外,在此张量使用过程中,调用者须确保此数据有效。
1971
1972**参数:**
1973
1974| 名称 | 描述 |
1975| -------- | -------- |
1976| tensor | 张量对象句柄。 |
1977| data | 用户数据首地址。 |
1978| data_size | 用户数据长度。 |
1979
1980**返回:**
1981
1982执行状态码。若成功返回OH_AI_STATUS_SUCCESS,否则返回具体错误码。
1983
1984**起始版本:**
1985
198610
1987
1988
1989### OH_AI_DeviceInfoAddExtension()
1990
1991```
1992OH_AI_API OH_AI_Status OH_AI_DeviceInfoAddExtension (OH_AI_DeviceInfoHandle device_info, const char * name, const char * value, size_t value_size )
1993```
1994
1995**描述:**
1996
1997向设备信息中添加键/值对形式的扩展配置。只对NNRT设备信息有效。
1998
1999注意:当前仅支持{"CachePath": "YourCachePath"},{"CacheVersion": "YouCacheVersion"}, {"QuantParam": "YourQuantConfig"} 三种键值对配置,用户根据使用情况替换具体的值。
2000
2001**参数:**
2002
2003| 名称 | 描述 |
2004| -------- | -------- |
2005| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
2006| name | 单个扩展项的键,格式为C字符串。 |
2007| value | 单个扩展项的值内容首地址。 |
2008| value_size | 单个扩展项的值内容长度。 |
2009
2010**返回:**
2011
2012**OH_AI_Status** 执行状态码,若成功返回OH_AI_STATUS_SUCCESS,失败则返回具体错误码。
2013
2014**起始版本:**
2015
201610
2017
2018
2019### OH_AI_GetElementOfNNRTDeviceDescs()
2020
2021```
2022OH_AI_API NNRTDeviceDesc* OH_AI_GetElementOfNNRTDeviceDescs (NNRTDeviceDesc * descs, size_t index )
2023```
2024
2025**描述:**
2026
2027获取NNRT设备描述信息数组中的元素指针。
2028
2029**参数:**
2030
2031| 名称 | 描述 |
2032| -------- | -------- |
2033| descs | NNRT设备描述信息数组。 |
2034| index | 数组元素索引。 |
2035
2036**返回:**
2037
2038NNRT设备描述信息类型指针。
2039
2040**起始版本:**
2041
204210
2043