目录

tensor.h

概述

提供了张量相关的接口,可用于创建和修改张量信息,该接口是非线程安全的。

引用文件: <mindspore/tensor.h>

库: libmindspore_lite_ndk.so

系统能力: SystemCapability.Ai.MindSpore

起始版本: 9

相关模块: MindSpore

汇总

[h2]结构体

名称 typedef关键字 描述
void * OH_AI_TensorHandle 指向张量对象句柄。
void * OH_AI_AllocatorHandle 指向内存分配器对象句柄。

[h2]函数

名称 描述
OH_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) 创建一个张量对象。
OH_AI_API void OH_AI_TensorDestroy(OH_AI_TensorHandle *tensor) 释放张量对象。
OH_AI_API OH_AI_TensorHandle OH_AI_TensorClone(OH_AI_TensorHandle tensor) 深拷贝一个张量。
OH_AI_API void OH_AI_TensorSetName(OH_AI_TensorHandle tensor, const char *name) 设置张量的名称。
OH_AI_API const char *OH_AI_TensorGetName(const OH_AI_TensorHandle tensor) 获取张量的名称。
OH_AI_API void OH_AI_TensorSetDataType(OH_AI_TensorHandle tensor, OH_AI_DataType type) 设置张量的数据类型。
OH_AI_API OH_AI_DataType OH_AI_TensorGetDataType(const OH_AI_TensorHandle tensor) 获取张量类型。
OH_AI_API void OH_AI_TensorSetShape(OH_AI_TensorHandle tensor, const int64_t *shape, size_t shape_num) 设置张量的形状。
OH_AI_API const int64_t *OH_AI_TensorGetShape(const OH_AI_TensorHandle tensor, size_t *shape_num) 获取张量的形状。
OH_AI_API void OH_AI_TensorSetFormat(OH_AI_TensorHandle tensor, OH_AI_Format format) 设置张量数据的排列方式。
OH_AI_API OH_AI_Format OH_AI_TensorGetFormat(const OH_AI_TensorHandle tensor) 获取张量数据的排列方式。
OH_AI_API void OH_AI_TensorSetData(OH_AI_TensorHandle tensor, void *data) 设置张量的数据。
OH_AI_API const void *OH_AI_TensorGetData(const OH_AI_TensorHandle tensor) 获取张量数据的指针。
OH_AI_API void *OH_AI_TensorGetMutableData(const OH_AI_TensorHandle tensor) 获取可变的张量数据指针。如果数据为空则会开辟内存。
OH_AI_API int64_t OH_AI_TensorGetElementNum(const OH_AI_TensorHandle tensor) 获取张量元素数量。
OH_AI_API size_t OH_AI_TensorGetDataSize(const OH_AI_TensorHandle tensor) 获取张量中的数据的字节数大小。
OH_AI_API OH_AI_Status OH_AI_TensorSetUserData(OH_AI_TensorHandle tensor, void *data, size_t data_size)

设置张量为用户自行管理的数据。此接口常用于复用用户数据作为模型输入,可减少一次数据拷贝。

注意:此数据对于张量来说是外部数据,张量销毁时不会主动释放,由调用者负责释放。另外,在此张量使用过程中,调用者须确保此数据有效。

OH_AI_API OH_AI_AllocatorHandle OH_AI_TensorGetAllocator(OH_AI_TensorHandle tensor) 获取内存分配器。此接口主要是提供一种获取张量的内存分配器的方法。
OH_AI_API OH_AI_Status OH_AI_TensorSetAllocator(OH_AI_TensorHandle tensor, OH_AI_AllocatorHandle allocator) 设置内存分配器。此接口主要是提供一种设置内存分配器的方法,tensor的内存将由这个分配器分配。

函数说明

[h2]OH_AI_TensorCreate()

OH_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)

描述

创建一个张量对象。需要和OH_AI_TensorDestroy配合使用。

起始版本: 9

参数:

参数项 描述
const char *name 张量名称。字符串长度跟随系统限制。
OH_AI_DataType type 张量的数据类型。
const int64_t *shape 张量的维度数组。
size_t shape_num 张量维度数组长度。
const void *data 指向数据的指针。
size_t data_len 数据的长度。

返回:

类型 说明
OH_AI_API OH_AI_TensorHandle 指向张量对象句柄。

[h2]OH_AI_TensorDestroy()

OH_AI_API void OH_AI_TensorDestroy(OH_AI_TensorHandle *tensor)

描述

释放张量对象。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle *tensor 指向张量句柄的二级指针。

[h2]OH_AI_TensorClone()

OH_AI_API OH_AI_TensorHandle OH_AI_TensorClone(OH_AI_TensorHandle tensor)

描述

深拷贝一个张量。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API OH_AI_TensorHandle 指向新张量对象句柄。

[h2]OH_AI_TensorSetName()

OH_AI_API void OH_AI_TensorSetName(OH_AI_TensorHandle tensor, const char *name)

描述

设置张量的名称。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
const char *name 张量名称。字符串长度跟随系统限制。

[h2]OH_AI_TensorGetName()

OH_AI_API const char *OH_AI_TensorGetName(const OH_AI_TensorHandle tensor)

描述

获取张量的名称。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API const char * 张量的名称。

[h2]OH_AI_TensorSetDataType()

OH_AI_API void OH_AI_TensorSetDataType(OH_AI_TensorHandle tensor, OH_AI_DataType type)

描述

设置张量的数据类型。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
OH_AI_DataType type 数据类型,具体见OH_AI_DataType。

[h2]OH_AI_TensorGetDataType()

OH_AI_API OH_AI_DataType OH_AI_TensorGetDataType(const OH_AI_TensorHandle tensor)

描述

获取张量类型。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API OH_AI_DataType 张量的数据类型。

[h2]OH_AI_TensorSetShape()

OH_AI_API void OH_AI_TensorSetShape(OH_AI_TensorHandle tensor, const int64_t *shape, size_t shape_num)

描述

设置张量的形状。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
const int64_t *shape 形状数组。
size_t shape_num 张量形状数组长度。

[h2]OH_AI_TensorGetShape()

OH_AI_API const int64_t *OH_AI_TensorGetShape(const OH_AI_TensorHandle tensor, size_t *shape_num)

描述

获取张量的形状。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。
size_t *shape_num 该参数是输出参数,形状数组的长度会写入该变量。

返回:

类型 说明
OH_AI_API const int64_t * 形状数组。

[h2]OH_AI_TensorSetFormat()

OH_AI_API void OH_AI_TensorSetFormat(OH_AI_TensorHandle tensor, OH_AI_Format format)

描述

设置张量数据的排列方式。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
OH_AI_Format format 张量数据排列方式。

[h2]OH_AI_TensorGetFormat()

OH_AI_API OH_AI_Format OH_AI_TensorGetFormat(const OH_AI_TensorHandle tensor)

描述

获取张量数据的排列方式。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API OH_AI_Format 张量数据的排列方式。

[h2]OH_AI_TensorSetData()

OH_AI_API void OH_AI_TensorSetData(OH_AI_TensorHandle tensor, void *data)

描述

设置张量的数据。

起始版本: 9

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
void *data 指向数据的指针。

[h2]OH_AI_TensorGetData()

OH_AI_API const void *OH_AI_TensorGetData(const OH_AI_TensorHandle tensor)

描述

获取张量数据的指针。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API const void * 张量数据的指针。

[h2]OH_AI_TensorGetMutableData()

OH_AI_API void *OH_AI_TensorGetMutableData(const OH_AI_TensorHandle tensor)

描述

获取可变的张量数据指针。如果数据为空则会开辟内存。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API void * 张量数据的指针。

[h2]OH_AI_TensorGetElementNum()

OH_AI_API int64_t OH_AI_TensorGetElementNum(const OH_AI_TensorHandle tensor)

描述

获取张量元素数量。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API int64_t 张量的元素数量。

[h2]OH_AI_TensorGetDataSize()

OH_AI_API size_t OH_AI_TensorGetDataSize(const OH_AI_TensorHandle tensor)

描述

获取张量中的数据的字节数大小。

起始版本: 9

参数:

参数项 描述
const OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API size_t 张量数据的字节数大小。

[h2]OH_AI_TensorSetUserData()

OH_AI_API OH_AI_Status OH_AI_TensorSetUserData(OH_AI_TensorHandle tensor, void *data, size_t data_size)

描述

设置张量为用户自行管理的数据。此接口常用于复用用户数据作为模型输入,可减少一次数据拷贝。

注意:此数据对于张量来说是外部数据,张量销毁时不会主动释放,由调用者负责释放。另外,在此张量使用过程中,调用者须确保此数据有效。

起始版本: 10

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
void *data 用户数据首地址。
size_t data_size 用户数据长度。

返回:

类型 说明
OH_AI_API OH_AI_Status 执行状态码。若成功返回OH_AI_STATUS_SUCCESS,否则返回具体错误码。

[h2]OH_AI_TensorGetAllocator()

OH_AI_API OH_AI_AllocatorHandle OH_AI_TensorGetAllocator(OH_AI_TensorHandle tensor)

描述

获取内存分配器。此接口主要是提供一种获取张量的内存分配器的方法。

起始版本: 12

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。

返回:

类型 说明
OH_AI_API OH_AI_AllocatorHandle 内存分配器的句柄。

[h2]OH_AI_TensorSetAllocator()

OH_AI_API OH_AI_Status OH_AI_TensorSetAllocator(OH_AI_TensorHandle tensor, OH_AI_AllocatorHandle allocator)

描述

设置内存分配器。此接口主要是提供一种设置内存分配器的方法,tensor的内存将由这个分配器分配。

起始版本: 12

参数:

参数项 描述
OH_AI_TensorHandle tensor 张量对象句柄。
OH_AI_AllocatorHandle allocator 内存分配器对象句柄。

返回:

类型 说明
OH_AI_API OH_AI_Status 执行状态码。若成功返回OH_AI_STATUS_SUCCESS,否则返回具体错误码。