更新时间:2021-03-18 GMT+08:00
AIModelManager
模型管理类。该类在ai_model_manager.h中定义。
class AIModelManager : public IAINNNode { public: AIModelManager(); /* * @brief 设置动态batch接口,用户不需要调用该接口。 * @param [in] inputDim 模型输入尺寸 * @param [in] input 输入数据 * @param [out] inputIndex 需要设置动态batch输入的序号, 从0开始 * @param [in] batchNumber 动态batch数 * @return SUCCESS 成功 * @return 其他 失败 */ AIStatus SetInputDynamicBatch(const vector<TensorDimension>& inputDim, std::vector <std::shared_ptr <IAITensor> > &input, uint32_t inputIndex, uint32_t batchNumber); /* * @brief 是否可以预分配输出内存,该接口由业务NNNode实现,默认值为true. */ virtual bool IsPreAllocateOutputMem() override; /* * @brief 获取AINNNodeDescription对象. */ static AINNNodeDescription GetDescription(); /* * @brief 获取已加载模型的输入输出尺寸 * @param [in] model_name 模型名字 * @param [out] input_tensor 模型输入尺寸 * @param [out] output_tensor 模型输出尺寸 * @return SUCCESS 成功 * @return 其他 失败 */ AIStatus GetModelIOTensorDim(const std::string& model_name, std::vector<TensorDimension>& input_tensor, std::vector<TensorDimension>& output_tensor); /* * @brief 设置线程推理请求ID * @param [in] request_id 模型名字 * @return 无 */ static void SetRequestId(uint64_t request_id); ~AIModelManager(); #ifdef __LITE__ /* * @brief 闲置超时调用,释放资源。实现时调用的是UnloadModels。 */ virtual AIStatus IdleRelease(); /* * @brief 超时后恢复,包含打开设备,加载模型等。实现时调用的是LoadModels。 */ virtual AIStatus IdleResume(); #endif // __LITE__ private: AIModelManagerImpl* impl_; };
父主题: 其他用于编译依赖的接口