更新时间: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
};
分享:

    相关文档

    相关产品