• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# MindSpore
2
3
4提供MindSpore Lite的模型推理相关接口。
5
6
7@Syscap SystemCapability.Ai.MindSpore
8
9
10**起始版本:**
11
129
13
14
15## 汇总
16
17
18### 文件
19
20| 文件名称 | 描述 |
21| -------- | -------- |
22| [context.h](context_8h.md) | 提供了Context相关的接口,可以配置运行时信息。<br>引用文件:\<mindspore/context.h> |
23| [data_type.h](data__type_8h.md) | 声明了张量的数据的类型。<br>引用文件:\<mindspore/data_type.h> |
24| [format.h](format_8h.md) | 提供张量数据的排列格式。<br>引用文件:\<mindspore/format.h> |
25| [model.h](model_8h.md) | 提供了模型相关接口,可以用于模型创建、模型推理等。<br>引用文件:\<mindspore/model.h> |
26| [status.h](status_8h.md) | 提供了Mindspore Lite运行时的状态码。<br>引用文件:\<mindspore/status.h> |
27| [tensor.h](tensor_8h.md) | 提供了张量相关的接口,可用于创建和修改张量信息。<br>引用文件:\<mindspore/tensor.h> |
28| [types.h](types_8h.md) | 提供了MindSpore Lite支持的模型文件类型和设备类型。<br>引用文件:\<mindspore/types.h> |
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 | 维度信息,最大的维度为**MS_MAX_SHAPE_NUM**。 |
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-1) | MSTensor保存的数据支持的类型。 |
54| [OH_AI_Format](#oh_ai_format-1) | 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)) (const OH_AI_TensorHandleArray inputs, const OH_AI_TensorHandleArray outputs, const OH_AI_CallBackParam kernel_Info) | 回调函数指针。 |
60| [OH_AI_Status](#oh_ai_status-1) | Minspore的状态码。 |
61| [OH_AI_TensorHandle](#oh_ai_tensorhandle) | 指向张量对象句柄。 |
62| [OH_AI_ModelType](#oh_ai_modeltype-1) | 模型文件的类型。 |
63| [OH_AI_DeviceType](#oh_ai_devicetype-1) | 设备类型,该信息。 |
64
65
66### 枚举
67
68| 枚举名称 | 描述 |
69| -------- | -------- |
70| [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 } | MSTensor保存的数据支持的类型。 |
71| [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 } | MSTensor保存的数据支持的排列格式。 |
72| [OH_AI_CompCode](#oh_ai_compcode) {<br/>OH_AI_COMPCODE_CORE = 0x00000000u,<br/>OH_AI_COMPCODE_LITE = 0xF0000000u } | Minspore不同组件的代码、 |
73| [OH_AI_Status](#oh_ai_status-1) {<br/>OH_AI_STATUS_SUCCESS = 0,<br/>OH_AI_STATUS_CORE_FAILED = OH_AI_COMPCODE_CORE \| 0x1, <br/>OH_AI_STATUS_LITE_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -1), <br/>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),<br/>OH_AI_STATUS_LITE_NO_CHANGE = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -4),<br/>OH_AI_STATUS_LITE_SUCCESS_EXIT = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -5),<br/>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),<br/>OH_AI_STATUS_LITE_THREADPOOL_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -8),<br/>OH_AI_STATUS_LITE_UNINITIALIZED_OBJ = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -9),<br/>OH_AI_STATUS_LITE_OUT_OF_TENSOR_RANGE, <br/>OH_AI_STATUS_LITE_INPUT_TENSOR_ERROR,<br/>OH_AI_STATUS_LITE_REENTRANT_ERROR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -102),<br/>OH_AI_STATUS_LITE_GRAPH_FILE_ERROR,<br/>OH_AI_STATUS_LITE_NOT_FIND_OP = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -300),   OH_AI_STATUS_LITE_INVALID_OP_NAME = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -301),<br/>OH_AI_STATUS_LITE_INVALID_OP_ATTR = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -302),<br/>OH_AI_STATUS_LITE_OP_EXECUTE_FAILURE,<br/>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),<br/>OH_AI_STATUS_LITE_INFER_INVALID = OH_AI_COMPCODE_LITE \| (0x0FFFFFFF &amp; -501),<br/>OH_AI_STATUS_LITE_INPUT_PARAM_INVALID } | Minspore的状态码。 |
74| [OH_AI_ModelType](#oh_ai_modeltype-1) {<br/>OH_AI_MODELTYPE_MINDIR = 0,<br/>OH_AI_MODELTYPE_INVALID = 0xFFFFFFFF } | 模型文件的类型。 |
75| [OH_AI_DeviceType](#oh_ai_devicetype-1) {<br/>OH_AI_DEVICETYPE_CPU = 0,<br/>OH_AI_DEVICETYPE_KIRIN_GPU,<br/>OH_AI_DEVICETYPE_KIRIN_NPU,<br/>OH_AI_DEVICETYPE_NNRT = 60,<br/>OH_AI_DEVICETYPE_INVALID = 100 } | 设备类型信息,包含了目前支持的设备类型。 |
76
77
78### 函数
79
80| 函数名称 | 描述 |
81| -------- | -------- |
82| [OH_AI_ContextCreate](#oh_ai_contextcreate) () | 创建一个上下文的对象。 |
83| [OH_AI_ContextDestroy](#oh_ai_contextdestroy) (OH_AI_ContextHandle \*context) | 释放上下文对象。 |
84| [OH_AI_ContextSetThreadNum](#oh_ai_contextsetthreadnum) (OH_AI_ContextHandle context, int32_t thread_num) | 设置运行时的线程数量。 |
85| [OH_AI_ContextGetThreadNum](#oh_ai_contextgetthreadnum) (const OH_AI_ContextHandle context) | 获取线程数量。 |
86| [OH_AI_ContextSetThreadAffinityMode](#oh_ai_contextsetthreadaffinitymode) (OH_AI_ContextHandle context, int mode) | 设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。 |
87| [OH_AI_ContextGetThreadAffinityMode](#oh_ai_contextgetthreadaffinitymode) (const OH_AI_ContextHandle context) | 获取运行时线程绑定CPU核心的策略。 |
88| [OH_AI_ContextSetThreadAffinityCoreList](#oh_ai_contextsetthreadaffinitycorelist) (OH_AI_ContextHandle context, const int32_t \*core_list, <br/>size_t core_num) | 设置运行时线程绑定CPU核心的列表。 |
89| [OH_AI_ContextGetThreadAffinityCoreList](#oh_ai_contextgetthreadaffinitycorelist) (const OH_AI_ContextHandle context, size_t \*core_num) | 获取CPU绑核列表。 |
90| [OH_AI_ContextSetEnableParallel](#oh_ai_contextsetenableparallel) (OH_AI_ContextHandle context, bool is_parallel) | 设置运行时是否支持并行。 |
91| [OH_AI_ContextGetEnableParallel](#oh_ai_contextgetenableparallel) (const OH_AI_ContextHandle context) | 获取是否支持算子间并行。 |
92| [OH_AI_ContextAddDeviceInfo](#oh_ai_contextadddeviceinfo) (OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info) | 添加运行设备信息。 |
93| [OH_AI_DeviceInfoCreate](#oh_ai_deviceinfocreate) (OH_AI_DeviceType device_type) | 创建一个设备信息对象。 |
94| [OH_AI_DeviceInfoDestroy](#oh_ai_deviceinfodestroy) (OH_AI_DeviceInfoHandle \*device_info) | 释放设备信息实例。 |
95| [OH_AI_DeviceInfoSetProvider](#oh_ai_deviceinfosetprovider) (OH_AI_DeviceInfoHandle device_info, const char \*provider) | 设置供应商的名称。 |
96| [OH_AI_DeviceInfoGetProvider](#oh_ai_deviceinfogetprovider) (const OH_AI_DeviceInfoHandle device_info) | 获取生产商的名称。 |
97| [OH_AI_DeviceInfoSetProviderDevice](#oh_ai_deviceinfosetproviderdevice) (OH_AI_DeviceInfoHandle device_info, const char \*device) | 设置生产商设备的名称。 |
98| [OH_AI_DeviceInfoGetProviderDevice](#oh_ai_deviceinfogetproviderdevice) (const OH_AI_DeviceInfoHandle device_info) | 获取生产商设备的名称。 |
99| [OH_AI_DeviceInfoGetDeviceType](#oh_ai_deviceinfogetdevicetype) (const OH_AI_DeviceInfoHandle device_info) | 获取设备的类型。 |
100| [OH_AI_DeviceInfoSetEnableFP16](#oh_ai_deviceinfosetenablefp16) (OH_AI_DeviceInfoHandle device_info, bool is_fp16) | 设置是否开启float16推理模式,仅CPU/GPU设备可用。 |
101| [OH_AI_DeviceInfoGetEnableFP16](#oh_ai_deviceinfogetenablefp16) (const OH_AI_DeviceInfoHandle device_info) | 获取是否开启float16推理模式, 仅CPU/GPU设备可用。 |
102| [OH_AI_DeviceInfoSetFrequency](#oh_ai_deviceinfosetfrequency) (OH_AI_DeviceInfoHandle device_info, int frequency) | 设置NPU的频率,仅NPU设备可用。 |
103| [OH_AI_DeviceInfoGetFrequency](#oh_ai_deviceinfogetfrequency) (const OH_AI_DeviceInfoHandle device_info) | 获取NPU的频率类型,仅NPU设备可用。 |
104| [OH_AI_ModelCreate](#oh_ai_modelcreate) () | 创建一个模型对象。 |
105| [OH_AI_ModelDestroy](#oh_ai_modeldestroy) (OH_AI_ModelHandle \*model) | 释放一个模型对象。 |
106| [OH_AI_ModelBuild](#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模型。 |
107| [OH_AI_ModelBuildFromFile](#oh_ai_modelbuildfromfile) (OH_AI_ModelHandle model, const char \*model_path, <br/>OH_AI_ModelType model_type, const OH_AI_ContextHandle model_context) | 通过模型文件加载并编译MindSpore模型。 |
108| [OH_AI_ModelResize](#oh_ai_modelresize) (OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, OH_AI_ShapeInfo \*shape_infos, size_t shape_info_num) | 调整已编译模型的输入形状。 |
109| [OH_AI_ModelPredict](#oh_ai_modelpredict) (OH_AI_ModelHandle model, const OH_AI_TensorHandleArray inputs, OH_AI_TensorHandleArray \*outputs, const OH_AI_KernelCallBack before, <br/>const OH_AI_KernelCallBack after) | 执行模型推理。 |
110| [OH_AI_ModelGetInputs](#oh_ai_modelgetinputs) (const OH_AI_ModelHandle model) | 获取模型的输入张量数组结构体。 |
111| [OH_AI_ModelGetOutputs](#oh_ai_modelgetoutputs) (const OH_AI_ModelHandle model) | 获取模型的输出张量数组结构体。 |
112| [OH_AI_ModelGetInputByTensorName](#oh_ai_modelgetinputbytensorname) (const OH_AI_ModelHandle model, const char \*tensor_name) | 通过张量名获取模型的输入张量。 |
113| [OH_AI_ModelGetOutputByTensorName](#oh_ai_modelgetoutputbytensorname) (const OH_AI_ModelHandle model, const char \*tensor_name) | 通过张量名获取模型的输出张量。 |
114| [OH_AI_TensorCreate](#oh_ai_tensorcreate) (const char \*name, OH_AI_DataType type, const int64_t \*shape, <br/>size_t shape_num, const void \*data, size_t data_len) | 创建一个张量对象。 |
115| [OH_AI_TensorDestroy](#oh_ai_tensordestroy) (OH_AI_TensorHandle \*tensor) | 释放张量对象。 |
116| [OH_AI_TensorClone](#oh_ai_tensorclone) (OH_AI_TensorHandle tensor) | 深拷贝一个张量。 |
117| [OH_AI_TensorSetName](#oh_ai_tensorsetname) (OH_AI_TensorHandle tensor, const char \*name) | 设置张量的名称。 |
118| [OH_AI_TensorGetName](#oh_ai_tensorgetname) (const OH_AI_TensorHandle tensor) | 获取张量的名称。 |
119| [OH_AI_TensorSetDataType](#oh_ai_tensorsetdatatype) (OH_AI_TensorHandle tensor, OH_AI_DataType type) | 设置张量的数据类型。 |
120| [OH_AI_TensorGetDataType](#oh_ai_tensorgetdatatype) (const OH_AI_TensorHandle tensor) | 获取张量类型。 |
121| [OH_AI_TensorSetShape](#oh_ai_tensorsetshape) (OH_AI_TensorHandle tensor, const int64_t \*shape, size_t shape_num) | 设置张量的形状。 |
122| [OH_AI_TensorGetShape](#oh_ai_tensorgetshape) (const OH_AI_TensorHandle tensor, size_t \*shape_num) | 获取张量的形状。 |
123| [OH_AI_TensorSetFormat](#oh_ai_tensorsetformat) (OH_AI_TensorHandle tensor, OH_AI_Format format) | 设置张量数据的排列方式。 |
124| [OH_AI_TensorGetFormat](#oh_ai_tensorgetformat) (const OH_AI_TensorHandle tensor) | 获取张量数据的排列方式。 |
125| [OH_AI_TensorSetData](#oh_ai_tensorsetdata) (OH_AI_TensorHandle tensor, void \*data) | 设置张量的数据。 |
126| [OH_AI_TensorGetData](#oh_ai_tensorgetdata) (const OH_AI_TensorHandle tensor) | 获取张量数据的指针。 |
127| [OH_AI_TensorGetMutableData](#oh_ai_tensorgetmutabledata) (const OH_AI_TensorHandle tensor) | 获取可变的张量数据指针。如果数据为空则会开辟内存。 |
128| [OH_AI_TensorGetElementNum](#oh_ai_tensorgetelementnum) (const OH_AI_TensorHandle tensor) | 获取张量元素数量。 |
129| [OH_AI_TensorGetDataSize](#oh_ai_tensorgetdatasize) (const OH_AI_TensorHandle tensor) | 获取张量中的数据的字节数大小。 |
130
131
132## **宏定义说明**
133
134
135### OH_AI_MAX_SHAPE_NUM
136
137
138```
139#define OH_AI_MAX_SHAPE_NUM   32
140```
141
142**描述:**
143
144维度信息,最大的维度为**MS_MAX_SHAPE_NUM**。
145
146
147## **类型定义说明**
148
149
150### OH_AI_CallBackParam
151
152
153```
154typedef struct OH_AI_CallBackParam OH_AI_CallBackParam
155```
156
157**描述:**
158
159回调函数中传入的算子信息。
160
161
162### OH_AI_ContextHandle
163
164
165```
166typedef void* OH_AI_ContextHandle
167```
168
169**描述:**
170
171Mindspore的上下文信息的指针,该指针会指向Context。
172
173
174### OH_AI_DataType
175
176
177```
178typedef enum OH_AI_DataType OH_AI_DataType
179```
180
181**描述:**
182
183MSTensor保存的数据支持的类型。
184
185
186### OH_AI_DeviceInfoHandle
187
188
189```
190typedef void* OH_AI_DeviceInfoHandle
191```
192
193**描述:**
194
195Mindspore的运行设备信息的指针。
196
197
198### OH_AI_DeviceType
199
200
201```
202typedef enum OH_AI_DeviceType OH_AI_DeviceType
203```
204
205**描述:**
206
207设备类型信息,包含了目前支持的设备类型。
208
209
210### OH_AI_Format
211
212
213```
214typedef enum OH_AI_Format OH_AI_Format
215```
216
217**描述:**
218
219MSTensor保存的数据支持的排列格式。
220
221
222### OH_AI_KernelCallBack
223
224
225```
226typedef bool(* OH_AI_KernelCallBack) (const OH_AI_TensorHandleArray inputs, const OH_AI_TensorHandleArray outputs, const OH_AI_CallBackParam kernel_Info)
227```
228
229**描述:**
230
231回调函数指针。
232
233该函数指针是用于设置[OH_AI_ModelPredict](#oh_ai_modelpredict)函数参数中的两个回调函数。 该指针指向的函数需要包含三个参数,其中inputs和outputs对应了算子的输入和输出张量,kernel_Info表示当前算子的信息。 可以通过回调函数监控算子执行的情况,例如统计算子的执行时间,校验算子的正确性等等。
234
235
236### OH_AI_ModelHandle
237
238
239```
240typedef void* OH_AI_ModelHandle
241```
242
243**描述:**
244
245指向模型对象的指针。
246
247
248### OH_AI_ModelType
249
250
251```
252typedef enum OH_AI_ModelType OH_AI_ModelType
253```
254
255**描述:**
256
257模型文件的类型
258
259
260### OH_AI_Status
261
262
263```
264typedef enum OH_AI_Status OH_AI_Status
265```
266
267**描述:**
268
269Minspore的状态码。
270
271
272### OH_AI_TensorHandle
273
274
275```
276typedef void* OH_AI_TensorHandle
277```
278
279**描述:**
280
281指向张量对象句柄。
282
283
284### OH_AI_TensorHandleArray
285
286
287```
288typedef struct OH_AI_TensorHandleArray OH_AI_TensorHandleArray
289```
290
291**描述:**
292
293张量数组结构体,用于存储张量数组指针和张量数组长度。
294
295
296## **枚举类型说明**
297
298
299### OH_AI_CompCode
300
301
302```
303enum OH_AI_CompCode
304```
305
306**描述:**
307
308Minspore不同组件的代码。
309
310| 枚举值 | 描述 |
311| -------- | -------- |
312| OH_AI_COMPCODE_CORE | Minspore Core的代码。 |
313| OH_AI_COMPCODE_LITE | Minspore Lite的代码。 |
314
315
316### OH_AI_DataType
317
318
319```
320enum OH_AI_DataType
321```
322
323**描述:**
324
325MSTensor保存的数据支持的类型。
326
327| 枚举值 | 描述 |
328| -------- | -------- |
329| OH_AI_DATATYPE_UNKNOWN | 未知的数据类型。 |
330| OH_AI_DATATYPE_OBJECTTYPE_STRING | String数据类型。 |
331| OH_AI_DATATYPE_OBJECTTYPE_LIST | List数据类型。 |
332| OH_AI_DATATYPE_OBJECTTYPE_TUPLE | Tuple数据类型。 |
333| OH_AI_DATATYPE_OBJECTTYPE_TENSOR | TensorList数据类型。 |
334| OH_AI_DATATYPE_NUMBERTYPE_BEGIN | Number类型的起始。 |
335| OH_AI_DATATYPE_NUMBERTYPE_BOOL | Bool数据类型。 |
336| OH_AI_DATATYPE_NUMBERTYPE_INT8 | Int8数据类型。 |
337| OH_AI_DATATYPE_NUMBERTYPE_INT16 | 表示Int16数据类型。 |
338| OH_AI_DATATYPE_NUMBERTYPE_INT32 | 表示Int32数据类型。 |
339| OH_AI_DATATYPE_NUMBERTYPE_INT64 | 表示Int64数据类型。 |
340| OH_AI_DATATYPE_NUMBERTYPE_UINT8 | 表示UInt8数据类型。 |
341| OH_AI_DATATYPE_NUMBERTYPE_UINT16 | 表示UInt16数据类型。 |
342| OH_AI_DATATYPE_NUMBERTYPE_UINT32 | 表示UInt32数据类型。 |
343| OH_AI_DATATYPE_NUMBERTYPE_UINT64 | 表示UInt64数据类型。 |
344| OH_AI_DATATYPE_NUMBERTYPE_FLOAT16 | 表示Float16数据类型。 |
345| OH_AI_DATATYPE_NUMBERTYPE_FLOAT32 | 表示Float32数据类型。 |
346| OH_AI_DATATYPE_NUMBERTYPE_FLOAT64 | 表示Float64数据类型。 |
347| OH_AI_DATATYPE_NUMBERTYPE_END | 表示Number类型的结尾。 |
348| OH_AI_DataTypeInvalid | 表示无效的数据类型。 |
349
350
351### OH_AI_DeviceType
352
353
354```
355enum OH_AI_DeviceType
356```
357
358**描述:**
359
360设备类型信息,包含了目前支持的设备类型。
361
362| 枚举值 | 描述 |
363| -------- | -------- |
364| OH_AI_DEVICETYPE_CPU | 设备类型是CPU。 |
365| OH_AI_DEVICETYPE_GPU | 设备类型是GPU。预留选项,暂不支持。 |
366| OH_AI_DEVICETYPE_KIRIN_NPU | 设备类型是麒麟NPU。预留选项,暂不支持。 |
367| OH_AI_DEVICETYPE_NNRT | 设备类型是NNRt。OHOS设备范围是[60,80)。 |
368| OH_AI_DEVICETYPE_INVALID | 设备类型无效。 |
369
370
371### OH_AI_Format
372
373
374```
375enum OH_AI_Format
376```
377
378**描述:**
379
380MSTensor保存的数据支持的排列格式。
381
382| 枚举值 | 描述 |
383| -------- | -------- |
384| OH_AI_FORMAT_NCHW | 表示NCHW排列。 |
385| OH_AI_FORMAT_NHWC | 表示NHWC排列。 |
386| OH_AI_FORMAT_NHWC4 | 表示NHWC4排列。 |
387| OH_AI_FORMAT_HWKC | 表示HWKC排列。 |
388| OH_AI_FORMAT_HWCK | 表示HWCK排列。 |
389| OH_AI_FORMAT_KCHW | 表示KCHW排列。 |
390| OH_AI_FORMAT_CKHW | 表示CKHW排列。 |
391| OH_AI_FORMAT_KHWC | 表示KHWC排列。 |
392| OH_AI_FORMAT_CHWK | 表示CHWK排列。 |
393| OH_AI_FORMAT_HW | 表示HW排列。 |
394| OH_AI_FORMAT_HW4 | 表示HW4排列。 |
395| OH_AI_FORMAT_NC | 表示NC排列。 |
396| OH_AI_FORMAT_NC4 | 表示NC4排列。 |
397| OH_AI_FORMAT_NC4HW4 | 表示NC4HW4排列。 |
398| OH_AI_FORMAT_NCDHW | 表示NCDHW排列。 |
399| OH_AI_FORMAT_NWC | 表示NWC排列。 |
400| OH_AI_FORMAT_NCW | 表示NCW排列。 |
401
402
403### OH_AI_ModelType
404
405
406```
407enum OH_AI_ModelType
408```
409
410**描述:**
411
412模型文件的类型。
413
414| 枚举值 | 描述 |
415| -------- | -------- |
416| OH_AI_MODELTYPE_MINDIR | 模型类型是MindIR。 |
417| OH_AI_MODELTYPE_INVALID | 模型类型无效。 |
418
419
420### OH_AI_Status
421
422
423```
424enum OH_AI_Status
425```
426
427**描述:**
428
429Minspore的状态码。
430
431| 枚举值 | 描述 |
432| -------- | -------- |
433| OH_AI_STATUS_SUCCESS | 通用的成功状态码。 |
434| OH_AI_STATUS_CORE_FAILED | Mindspore Core 失败状态码。 |
435| OH_AI_STATUS_LITE_ERROR | Mindspore Lite 异常状态码。 |
436| OH_AI_STATUS_LITE_NULLPTR | Mindspore Lite 空指针状态码。 |
437| OH_AI_STATUS_LITE_PARAM_INVALID | Mindspore Lite 参数异常状态码。 |
438| OH_AI_STATUS_LITE_NO_CHANGE | Mindspore Lite 未改变状态码。 |
439| OH_AI_STATUS_LITE_SUCCESS_EXIT | Mindspore Lite 没有错误但是退出的状态码。 |
440| OH_AI_STATUS_LITE_MEMORY_FAILED | Mindspore Lite 内存分配失败的状态码。 |
441| OH_AI_STATUS_LITE_NOT_SUPPORT | Mindspore Lite 功能未支持的状态码。 |
442| OH_AI_STATUS_LITE_THREADPOOL_ERROR | Mindspore Lite 线程池异常状态码。 |
443| OH_AI_STATUS_LITE_UNINITIALIZED_OBJ | Mindspore Lite 未初始化状态码。 |
444| OH_AI_STATUS_LITE_OUT_OF_TENSOR_RANGE | Mindspore Lite 张量溢出错误的状态码。 |
445| OH_AI_STATUS_LITE_INPUT_TENSOR_ERROR | Mindspore Lite 输入张量异常的状态码。 |
446| OH_AI_STATUS_LITE_REENTRANT_ERROR | Mindspore Lite 重入异常的状态码。 |
447| OH_AI_STATUS_LITE_GRAPH_FILE_ERROR | Mindspore Lite 文件异常状态码。 |
448| OH_AI_STATUS_LITE_NOT_FIND_OP | Mindspore Lite 未找到算子的状态码。 |
449| OH_AI_STATUS_LITE_INVALID_OP_NAME | Mindspore Lite 无效算子状态码。 |
450| OH_AI_STATUS_LITE_INVALID_OP_ATTR | Mindspore Lite 无效算子超参数状态码。 |
451| OH_AI_STATUS_LITE_OP_EXECUTE_FAILURE | Mindspore Lite 算子执行失败的状态码。 |
452| OH_AI_STATUS_LITE_FORMAT_ERROR | Mindspore Lite 张量格式异常状态码。 |
453| OH_AI_STATUS_LITE_INFER_ERROR | Mindspore Lite 形状推理异常状态码。 |
454| OH_AI_STATUS_LITE_INFER_INVALID | Mindspore Lite 无效的形状推理的状态码。 |
455| OH_AI_STATUS_LITE_INPUT_PARAM_INVALID | Mindspore Lite 用户输入的参数无效状态码。 |
456
457
458## **函数说明**
459
460
461### OH_AI_ContextAddDeviceInfo()
462
463
464```
465OH_AI_API void OH_AI_ContextAddDeviceInfo (OH_AI_ContextHandle context, OH_AI_DeviceInfoHandle device_info )
466```
467
468**描述:**
469
470添加运行设备信息。
471
472**参数:**
473
474| 名称 | 描述 |
475| -------- | -------- |
476| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
477| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
478
479
480### OH_AI_ContextCreate()
481
482
483```
484OH_AI_API OH_AI_ContextHandle OH_AI_ContextCreate ()
485```
486
487**描述:**
488
489创建一个上下文的对象。
490
491**返回:**
492
493指向上下文信息的[OH_AI_ContextHandle](#oh_ai_contexthandle)。
494
495
496### OH_AI_ContextDestroy()
497
498
499```
500OH_AI_API void OH_AI_ContextDestroy (OH_AI_ContextHandle * context)
501```
502
503**描述:**
504
505释放上下文对象。
506
507**参数:**
508
509| 名称 | 描述 |
510| -------- | -------- |
511| context | 指向[OH_AI_ContextHandle](#oh_ai_contexthandle)的二级指针,上下文销毁后会对context置为空指针。 |
512
513
514### OH_AI_ContextGetEnableParallel()
515
516
517```
518OH_AI_API bool OH_AI_ContextGetEnableParallel (const OH_AI_ContextHandle context)
519```
520
521**描述:**
522
523获取是否支持算子间并行。
524
525**参数:**
526
527| 名称 | 描述 |
528| -------- | -------- |
529| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
530
531**返回:**
532
533是否支持并行。true 为支持并行, false 为不支持并行。
534
535
536### OH_AI_ContextGetThreadAffinityCoreList()
537
538
539```
540OH_AI_API const int32_t* OH_AI_ContextGetThreadAffinityCoreList (const OH_AI_ContextHandle context, size_t * core_num )
541```
542
543**描述:**
544
545获取CPU绑核列表。
546
547**参数:**
548
549| 名称 | 描述 |
550| -------- | -------- |
551| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
552| core_num | 该参数是输出参数,表示核的数量。 |
553
554**返回:**
555
556CPU绑核列表。
557
558
559### OH_AI_ContextGetThreadAffinityMode()
560
561
562```
563OH_AI_API int OH_AI_ContextGetThreadAffinityMode (const OH_AI_ContextHandle context)
564```
565
566**描述:**
567
568获取运行时线程绑定CPU核心的策略。
569
570**参数:**
571
572| 名称 | 描述 |
573| -------- | -------- |
574| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
575
576**返回:**
577
578绑核策略。一共有三种策略,0为不绑核, 1为大核优先, 2为小核优先。
579
580
581### OH_AI_ContextGetThreadNum()
582
583
584```
585OH_AI_API int32_t OH_AI_ContextGetThreadNum (const OH_AI_ContextHandle context)
586```
587
588**描述:**
589
590获取线程数量。
591
592**参数:**
593
594| 名称 | 描述 |
595| -------- | -------- |
596| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
597
598**返回:**
599
600当前的线程数量。
601
602
603### OH_AI_ContextSetEnableParallel()
604
605
606```
607OH_AI_API void OH_AI_ContextSetEnableParallel (OH_AI_ContextHandle context, bool is_parallel )
608```
609
610**描述:**
611
612设置运行时是否支持并行。
613
614**参数:**
615
616| 名称 | 描述 |
617| -------- | -------- |
618| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
619| is_parallel | 是否支持并行。true 为支持并行, false 为不支持并行。 |
620
621
622### OH_AI_ContextSetThreadAffinityCoreList()
623
624
625```
626OH_AI_API void OH_AI_ContextSetThreadAffinityCoreList (OH_AI_ContextHandle context, const int32_t * core_list, size_t core_num )
627```
628
629**描述:**
630
631设置运行时线程绑定CPU核心的列表。
632
633例如:当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参数不生效。
634
635**参数:**
636
637| 名称 | 描述 |
638| -------- | -------- |
639| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
640| core_list | CPU绑核的列表。 |
641| core_num | 核的数量,它就代表**core_list**的长度。 |
642
643
644### OH_AI_ContextSetThreadAffinityMode()
645
646
647```
648OH_AI_API void OH_AI_ContextSetThreadAffinityMode (OH_AI_ContextHandle context, int mode )
649```
650
651**描述:**
652
653设置运行时线程绑定CPU核心的策略,按照CPU物理核频率分为大、中、小三种类型的核心,并且仅需绑大核或者绑中核,不需要绑小核。
654
655**参数:**
656
657| 名称 | 描述 |
658| -------- | -------- |
659| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
660| mode | 绑核策略。一共有三种策略,0为不绑核, 1为大核优先, 2为中核优先。 |
661
662
663### OH_AI_ContextSetThreadNum()
664
665
666```
667OH_AI_API void OH_AI_ContextSetThreadNum (OH_AI_ContextHandle context, int32_t thread_num )
668```
669
670**描述:**
671
672设置运行时的线程数量。
673
674**参数:**
675
676| 名称 | 描述 |
677| -------- | -------- |
678| context | 指向上下文信息实例的[OH_AI_ContextHandle](#oh_ai_contexthandle) |
679| thread_num | 运行时的线程数量。 |
680
681
682### OH_AI_DeviceInfoCreate()
683
684
685```
686OH_AI_API OH_AI_DeviceInfoHandle OH_AI_DeviceInfoCreate (OH_AI_DeviceType device_type)
687```
688
689**描述:**
690
691创建一个设备信息对象。
692
693**参数:**
694
695| 名称 | 描述 |
696| -------- | -------- |
697| device_type | 设备类型, 具体见[OH_AI_DeviceType](#oh_ai_devicetype-1)。 |
698
699**返回:**
700
701指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。
702
703
704### OH_AI_DeviceInfoDestroy()
705
706
707```
708OH_AI_API void OH_AI_DeviceInfoDestroy (OH_AI_DeviceInfoHandle * device_info)
709```
710
711**描述:**
712
713释放设备信息实例。
714
715**参数:**
716
717| 名称 | 描述 |
718| -------- | -------- |
719| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
720
721
722### OH_AI_DeviceInfoGetDeviceType()
723
724
725```
726OH_AI_API OH_AI_DeviceType OH_AI_DeviceInfoGetDeviceType (const OH_AI_DeviceInfoHandle device_info)
727```
728
729**描述:**
730
731获取设备的类型。
732
733**参数:**
734
735| 名称 | 描述 |
736| -------- | -------- |
737| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
738
739**返回:**
740
741生产商设备类型。
742
743
744### OH_AI_DeviceInfoGetEnableFP16()
745
746
747```
748OH_AI_API bool OH_AI_DeviceInfoGetEnableFP16 (const OH_AI_DeviceInfoHandle device_info)
749```
750
751**描述:**
752
753获取是否开启float16推理模式, 仅CPU/GPU设备可用。
754
755**参数:**
756
757| 名称 | 描述 |
758| -------- | -------- |
759| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
760
761**返回:**
762
763设置是否开启float16推理模式。
764
765
766### OH_AI_DeviceInfoGetFrequency()
767
768
769```
770OH_AI_API int OH_AI_DeviceInfoGetFrequency (const OH_AI_DeviceInfoHandle device_info)
771```
772
773**描述:**
774
775获取NPU的频率类型,仅NPU设备可用。
776
777**参数:**
778
779| 名称 | 描述 |
780| -------- | -------- |
781| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
782
783**返回:**
784
785NPU的频率类型。取值范围为0-4,1表示低功耗,2表示平衡,3表示高性能,4表示超高性能。
786
787
788### OH_AI_DeviceInfoGetProvider()
789
790
791```
792OH_AI_API const char* OH_AI_DeviceInfoGetProvider (const OH_AI_DeviceInfoHandle device_info)
793```
794
795**描述:**
796
797获取生产商的名称。
798
799**参数:**
800
801| 名称 | 描述 |
802| -------- | -------- |
803| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
804
805**返回:**
806
807生产商的名称。
808
809
810### OH_AI_DeviceInfoGetProviderDevice()
811
812
813```
814OH_AI_API const char* OH_AI_DeviceInfoGetProviderDevice (const OH_AI_DeviceInfoHandle device_info)
815```
816
817**描述:**
818
819获取生产商设备的名称。
820
821**参数:**
822
823| 名称 | 描述 |
824| -------- | -------- |
825| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
826
827**返回:**
828
829生产商设备的名称。
830
831
832### OH_AI_DeviceInfoSetEnableFP16()
833
834
835```
836OH_AI_API void OH_AI_DeviceInfoSetEnableFP16 (OH_AI_DeviceInfoHandle device_info, bool is_fp16 )
837```
838
839**描述:**
840
841设置是否开启float16推理模式,仅CPU/GPU设备可用。
842
843**参数:**
844
845| 名称 | 描述 |
846| -------- | -------- |
847| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
848| is_fp16 | 是否开启float16推理模式。 |
849
850
851### OH_AI_DeviceInfoSetFrequency()
852
853
854```
855OH_AI_API void OH_AI_DeviceInfoSetFrequency (OH_AI_DeviceInfoHandle device_info, int frequency )
856```
857
858**描述:**
859
860设置NPU的频率,仅NPU设备可用。
861
862**参数:**
863
864| 名称 | 描述 |
865| -------- | -------- |
866| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
867| frequency | 频率类型,取值范围为0-4,默认是3。1表示低功耗,2表示平衡,3表示高性能,4表示超高性能。 |
868
869
870### OH_AI_DeviceInfoSetProvider()
871
872
873```
874OH_AI_API void OH_AI_DeviceInfoSetProvider (OH_AI_DeviceInfoHandle device_info, const char * provider )
875```
876
877**描述:**
878
879设置供应商的名称。
880
881**参数:**
882
883| 名称 | 描述 |
884| -------- | -------- |
885| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
886| provider | 供应商的名称。 |
887
888
889### OH_AI_DeviceInfoSetProviderDevice()
890
891
892```
893OH_AI_API void OH_AI_DeviceInfoSetProviderDevice (OH_AI_DeviceInfoHandle device_info, const char * device )
894```
895
896**描述:**
897
898设置生产商设备的名称。
899
900**参数:**
901
902| 名称 | 描述 |
903| -------- | -------- |
904| device_info | 指向设备信息实例的[OH_AI_DeviceInfoHandle](#oh_ai_deviceinfohandle)。 |
905| device | 生产商设备名称。 例如: CPU。 |
906
907
908### OH_AI_ModelBuild()
909
910
911```
912OH_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 )
913```
914
915**描述:**
916
917从内存缓冲区加载并编译MindSpore模型。
918注意,同一个[OH_AI_ContextHandle](#oh_ai_contexthandle)对象仅能传递给[OH_AI_ModelBuildFromFile](#oh_ai_modelbuildfromfile)或者[OH_AI_ModelBuild](#oh_ai_modelbuild)一次,如果多次调用该函数需要创建多个不同的[OH_AI_ContextHandle](#oh_ai_contexthandle)。
919
920**参数:**
921
922| 名称 | 描述 |
923| -------- | -------- |
924| model | 模型对象指针。 |
925| model_data | 内存中已经加载的模型数据地址。 |
926| data_size | 模型数据的长度。 |
927| model_type | 模型文件类型,具体见[OH_AI_ModelType](#oh_ai_modeltype-1)。 |
928| model_context | 模型运行时的上下文环境,具体见 [OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
929
930**返回:**
931
932枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
933
934
935### OH_AI_ModelBuildFromFile()
936
937
938```
939OH_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 )
940```
941
942**描述:**
943
944通过模型文件加载并编译MindSpore模型。
945注意,同一个[OH_AI_ContextHandle](#oh_ai_contexthandle)对象仅能传递给[OH_AI_ModelBuildFromFile](#oh_ai_modelbuildfromfile)或者[OH_AI_ModelBuild](#oh_ai_modelbuild)一次,如果多次调用该函数需要创建多个不同的[OH_AI_ContextHandle](#oh_ai_contexthandle)。
946
947**参数:**
948
949| 名称 | 描述 |
950| -------- | -------- |
951| model | 模型对象指针。 |
952| model_path | 模型文件路径。 |
953| model_type | 模型文件类型,具体见[OH_AI_ModelType](#oh_ai_modeltype-1)。 |
954| model_context | 模型运行时的上下文环境,具体见 [OH_AI_ContextHandle](#oh_ai_contexthandle)。 |
955
956**返回:**
957
958枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
959
960
961### OH_AI_ModelCreate()
962
963
964```
965OH_AI_API OH_AI_ModelHandle OH_AI_ModelCreate ()
966```
967
968**描述:**
969
970创建一个模型对象。
971
972**返回:**
973
974模型对象指针。
975
976
977### OH_AI_ModelDestroy()
978
979
980```
981OH_AI_API void OH_AI_ModelDestroy (OH_AI_ModelHandle * model)
982```
983
984**描述:**
985
986释放一个模型对象。
987
988**参数:**
989
990| 名称 | 描述 |
991| -------- | -------- |
992| model | 模型对象指针。 |
993
994
995### OH_AI_ModelGetInputByTensorName()
996
997
998```
999OH_AI_API OH_AI_TensorHandle OH_AI_ModelGetInputByTensorName (const OH_AI_ModelHandle model, const char * tensor_name )
1000```
1001
1002**描述:**
1003
1004通过张量名获取模型的输入张量。
1005
1006**参数:**
1007
1008| 名称 | 描述 |
1009| -------- | -------- |
1010| model | 模型对象指针。 |
1011| tensor_name | 张量名称。 |
1012
1013**返回:**
1014
1015tensor_name所对应的输入张量的张量指针,如果输入中没有该张量则返回空。
1016
1017
1018### OH_AI_ModelGetInputs()
1019
1020
1021```
1022OH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetInputs (const OH_AI_ModelHandle model)
1023```
1024
1025**描述:**
1026
1027获取模型的输入张量数组结构体。
1028
1029**参数:**
1030
1031| 名称 | 描述 |
1032| -------- | -------- |
1033| model | 模型对象指针。 |
1034
1035**返回:**
1036
1037模型输入对应的张量数组结构体。
1038
1039
1040### OH_AI_ModelGetOutputByTensorName()
1041
1042
1043```
1044OH_AI_API OH_AI_TensorHandle OH_AI_ModelGetOutputByTensorName (const OH_AI_ModelHandle model, const char * tensor_name )
1045```
1046
1047**描述:**
1048
1049通过张量名获取模型的输出张量。
1050
1051**参数:**
1052
1053| 名称 | 描述 |
1054| -------- | -------- |
1055| model | 模型对象指针。 |
1056| tensor_名称 | 张量名称。 |
1057
1058**返回:**
1059
1060tensor_name所对应的输入张量的张量指针,如果输出中没有该张量则返回空。
1061
1062
1063### OH_AI_ModelGetOutputs()
1064
1065
1066```
1067OH_AI_API OH_AI_TensorHandleArray OH_AI_ModelGetOutputs (const OH_AI_ModelHandle model)
1068```
1069
1070**描述:**
1071
1072获取模型的输出张量数组结构体。
1073
1074**参数:**
1075
1076| 名称 | 描述 |
1077| -------- | -------- |
1078| model | 模型对象指针。 |
1079
1080**返回:**
1081
1082模型输出对应的张量数组结构体。
1083
1084
1085### OH_AI_ModelPredict()
1086
1087
1088```
1089OH_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 )
1090```
1091
1092**描述:**
1093
1094执行模型推理。
1095
1096**参数:**
1097
1098| 名称 | 描述 |
1099| -------- | -------- |
1100| model | 模型对象指针。 |
1101| inputs | 模型输入对应的张量数组结构体。 |
1102| outputs | 模型输出对应的张量数组结构体的指针。 |
1103| before | 模型推理前执行的回调函数。 |
1104| after | 模型推理后执行的回调函数。 |
1105
1106**返回:**
1107
1108枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
1109
1110
1111### OH_AI_ModelResize()
1112
1113
1114```
1115OH_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 )
1116```
1117
1118**描述:**
1119
1120调整已编译模型的输入形状。
1121
1122**参数:**
1123
1124| 名称 | 描述 |
1125| -------- | -------- |
1126| model | 模型对象指针。 |
1127| inputs | 模型输入对应的张量数组结构体。 |
1128| shape_infos | 输入形状信息数组,按模型输入顺序排列的由形状信息组成的数组,模型会按顺序依次调整张量形状。 |
1129| shape_info_num | 形状信息数组的长度。 |
1130
1131**返回:**
1132
1133枚举类型的状态码[OH_AI_Status](#oh_ai_status-1),若返回MSStatus::kMSStatusSuccess则证明创建成功。
1134
1135
1136### OH_AI_TensorClone()
1137
1138
1139```
1140OH_AI_API OH_AI_TensorHandle OH_AI_TensorClone (OH_AI_TensorHandle tensor)
1141```
1142
1143**描述:**
1144
1145深拷贝一个张量。
1146
1147**参数:**
1148
1149| 名称 | 描述 |
1150| -------- | -------- |
1151| tensor | 待拷贝张量的指针。 |
1152
1153**返回:**
1154
1155指向新张量对象句柄。
1156
1157
1158### OH_AI_TensorCreate()
1159
1160
1161```
1162OH_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 )
1163```
1164
1165**描述:**
1166
1167创建一个张量对象。
1168
1169**参数:**
1170
1171| 名称 | 描述 |
1172| -------- | -------- |
1173| 名称 | 张量名称 |
1174| type | 张量的数据类型 |
1175| shape | 张量的维度数组。 |
1176| shape_num | 张量维度数组长度。 |
1177| data | 指向数据的指针。 |
1178| data_len | 数据的长度。 |
1179
1180**返回:**
1181
1182指向张量对象句柄。
1183
1184
1185### OH_AI_TensorDestroy()
1186
1187
1188```
1189OH_AI_API void OH_AI_TensorDestroy (OH_AI_TensorHandle * tensor)
1190```
1191
1192**描述:**
1193
1194释放张量对象。
1195
1196**参数:**
1197
1198| 名称 | 描述 |
1199| -------- | -------- |
1200| tensor | 指向张量句柄的二级指针。 |
1201
1202
1203### OH_AI_TensorGetData()
1204
1205
1206```
1207OH_AI_API const void* OH_AI_TensorGetData (const OH_AI_TensorHandle tensor)
1208```
1209
1210**描述:**
1211
1212获取张量数据的指针。
1213
1214**参数:**
1215
1216| 名称 | 描述 |
1217| -------- | -------- |
1218| tensor | 张量对象句柄。 |
1219
1220**返回:**
1221
1222张量数据的指针。
1223
1224
1225### OH_AI_TensorGetDataSize()
1226
1227
1228```
1229OH_AI_API size_t OH_AI_TensorGetDataSize (const OH_AI_TensorHandle tensor)
1230```
1231
1232**描述:**
1233
1234获取张量中的数据的字节数大小。
1235
1236**参数:**
1237
1238| 名称 | 描述 |
1239| -------- | -------- |
1240| tensor | 张量对象句柄。 |
1241
1242**返回:**
1243
1244张量数据的字节数大小。
1245
1246
1247### OH_AI_TensorGetDataType()
1248
1249
1250```
1251OH_AI_API OH_AI_DataType OH_AI_TensorGetDataType (const OH_AI_TensorHandle tensor)
1252```
1253
1254**描述:**
1255
1256获取张量类型。
1257
1258**参数:**
1259
1260| 名称 | 描述 |
1261| -------- | -------- |
1262| tensor | 张量对象句柄。 |
1263
1264**返回:**
1265
1266张量的数据类型。
1267
1268
1269### OH_AI_TensorGetElementNum()
1270
1271
1272```
1273OH_AI_API int64_t OH_AI_TensorGetElementNum (const OH_AI_TensorHandle tensor)
1274```
1275
1276**描述:**
1277
1278获取张量元素数量。
1279
1280**参数:**
1281
1282| 名称 | 描述 |
1283| -------- | -------- |
1284| tensor | 张量对象句柄。 |
1285
1286**返回:**
1287
1288张量的元素数量。
1289
1290
1291### OH_AI_TensorGetFormat()
1292
1293
1294```
1295OH_AI_API OH_AI_Format OH_AI_TensorGetFormat (const OH_AI_TensorHandle tensor)
1296```
1297
1298**描述:**
1299
1300获取张量数据的排列方式。
1301
1302**参数:**
1303
1304| 名称 | 描述 |
1305| -------- | -------- |
1306| tensor | 张量对象句柄。 |
1307
1308**返回:**
1309
1310张量数据的排列方式。
1311
1312
1313### OH_AI_TensorGetMutableData()
1314
1315
1316```
1317OH_AI_API void* OH_AI_TensorGetMutableData (const OH_AI_TensorHandle tensor)
1318```
1319
1320**描述:**
1321
1322获取可变的张量数据指针。如果数据为空则会开辟内存。
1323
1324**参数:**
1325
1326| 名称 | 描述 |
1327| -------- | -------- |
1328| tensor | 张量对象句柄。 |
1329
1330**返回:**
1331
1332张量数据的指针。
1333
1334
1335### OH_AI_TensorGetName()
1336
1337
1338```
1339OH_AI_API const char* OH_AI_TensorGetName (const OH_AI_TensorHandle tensor)
1340```
1341
1342**描述:**
1343
1344获取张量的名称。
1345
1346**参数:**
1347
1348| 名称 | 描述 |
1349| -------- | -------- |
1350| tensor | 张量对象句柄。 |
1351
1352**返回:**
1353
1354张量的名称。
1355
1356
1357### OH_AI_TensorGetShape()
1358
1359
1360```
1361OH_AI_API const int64_t* OH_AI_TensorGetShape (const OH_AI_TensorHandle tensor, size_t * shape_num )
1362```
1363
1364**描述:**
1365
1366获取张量的形状。
1367
1368**参数:**
1369
1370| 名称 | 描述 |
1371| -------- | -------- |
1372| tensor | 张量对象句柄。 |
1373| shape_num | 该参数是输出参数,形状数组的长度会写入该变量。 |
1374
1375**返回:**
1376
1377形状数组。
1378
1379
1380### OH_AI_TensorSetData()
1381
1382
1383```
1384OH_AI_API void OH_AI_TensorSetData (OH_AI_TensorHandle tensor, void * data )
1385```
1386
1387**描述:**
1388
1389设置张量的数据。
1390
1391**参数:**
1392
1393| 名称 | 描述 |
1394| -------- | -------- |
1395| tensor | 张量对象句柄。 |
1396| data | 指向数据的指针。 |
1397
1398
1399### OH_AI_TensorSetDataType()
1400
1401
1402```
1403OH_AI_API void OH_AI_TensorSetDataType (OH_AI_TensorHandle tensor, OH_AI_DataType type )
1404```
1405
1406**描述:**
1407
1408设置张量的数据类型。
1409
1410**参数:**
1411
1412| 名称 | 描述 |
1413| -------- | -------- |
1414| tensor | 张量对象句柄。 |
1415| type | 数据类型,具体见[OH_AI_DataType](#oh_ai_datatype-1)。 |
1416
1417
1418### OH_AI_TensorSetFormat()
1419
1420
1421```
1422OH_AI_API void OH_AI_TensorSetFormat (OH_AI_TensorHandle tensor, OH_AI_Format format )
1423```
1424
1425**描述:**
1426
1427设置张量数据的排列方式。
1428
1429**参数:**
1430
1431| 名称 | 描述 |
1432| -------- | -------- |
1433| tensor | 张量对象句柄。 |
1434| format | 张量数据排列方式。 |
1435
1436
1437### OH_AI_TensorSetName()
1438
1439
1440```
1441OH_AI_API void OH_AI_TensorSetName (OH_AI_TensorHandle tensor, const char *name )
1442```
1443
1444**描述:**
1445
1446设置张量的名称。
1447
1448**参数:**
1449
1450| 名称 | 描述 |
1451| -------- | -------- |
1452| tensor | 张量对象句柄。 |
1453| 名称 | 张量名称。 |
1454
1455
1456### OH_AI_TensorSetShape()
1457
1458
1459```
1460OH_AI_API void OH_AI_TensorSetShape (OH_AI_TensorHandle tensor, const int64_t * shape, size_t shape_num )
1461```
1462
1463**描述:**
1464
1465设置张量的形状。
1466
1467**参数:**
1468
1469| 名称 | 描述 |
1470| -------- | -------- |
1471| tensor | 张量对象句柄。 |
1472| shape | 形状数组。 |
1473| shape_num | 张量形状数组长度。 |
1474