更新时间:2021-03-18 GMT+08:00
IAITensor
Porcess函数时使用IAITensor作为模型的输入输出。该类在ai_tensor.h中定义。
/** * Tensor,用于表示输入输出的数据 */ class IAITensor { public: IAITensor() {} virtual ~IAITensor() {}; /* * @brief 通过AITensorDescription设置参数 * @param [in] tensor_desc tensor描述 * @return true: init成功 * @return false: init失败,失败的可能原因比如tensor_desc与当前tensor不符 */ virtual bool Init(const AITensorDescription &tensor_desc) = 0; /* * @brief 获取类型名称 */ virtual const char* const GetTypeName() = 0; /* * @brief 获取序列化后字节长度 */ virtual uint32_t ByteSizeLong() = 0; virtual void SetBufferAttr(void *data, int32_t size, bool isowner, bool is_support_mem_share) = 0; virtual bool IsSupportZerocpy() = 0; #if defined( __ANDROID__) || defined(ANDROID) /* * @brief 序列化到buffer,用于数据跨进程交互 * @param [in] buffer 序列化输出的内存区域地址,由调用方分配 * @param [in] size 输出内存区域的大小 * @return SUCCESS: 成功 * FAILED: 失败,如果该Tensor不支持跨进程,则不需要实现此接口,直接返回失败 */ virtual AIStatus SerializeTo(void* buffer, const uint32_t size) = 0; /* * @brief 从buffer反序列化回tensor,用于数据跨进程交互 * @param [in] buffer 输入的内存区域地址 * @param [in] size 输入内存区域的大小 * @return SUCCESS: 成功 * FAILED: 失败,如果该Tensor不支持跨进程,则不需要实现此接口,直接返回失败 */ virtual AIStatus DeserializeFrom(const void* buffer, const uint32_t size) = 0; #endif };
父主题: 数据类型