Engine::Init
初始化Engine实例的相关配置。该接口在engine.h中定义。
该Init接口是可选的,用户根据实际情况决定是否需要重载实现。
函数格式
HIAI_StatusT Engine::Init(const AIConfig &config, const vector<AIModelDescription> &modelDesc)
参数说明
参数 |
说明 |
取值范围 |
---|---|---|
config |
Engine配置项。 |
- |
modelDesc |
模型描述。 |
- |
返回值
返回的错误码是由用户提前注册的,具体注册方式见错误码注册。
错误码示例
本API(Application Programming Interface)的错误码由用户进行注册。
重载实现示例
初始化推理Engine,在初始化过程中通过模型管家(AIModelManager)的AIModelManager::Init接口加载模型。
HIAI_StatusT FrameworkerEngine::Init(const hiai::AIConfig& config, const std::vector<hiai::AIModelDescription>& model_desc) { hiai::AIStatus ret = hiai::SUCCESS; // init ai_model_manager_ if (nullptr == ai_model_manager_) { ai_model_manager_ = std::make_shared<hiai::AIModelManager>(); } std::cout<<"FrameworkerEngine Init"<<std::endl; HIAI_ENGINE_LOG("FrameworkerEngine Init"); for (int index = 0; index < config.items_size(); ++index) { const ::hiai::AIConfigItem& item = config.items(index); // loading model if(item.name() == "model_path") { const char* model_path = item.value().data(); std::vector<hiai::AIModelDescription> model_desc_vec; hiai::AIModelDescription model_desc_; model_desc_.set_path(model_path); model_desc_vec.push_back(model_desc_); ret = ai_model_manager_->Init(config, model_desc_vec); if (hiai::SUCCESS != ret) { HIAI_ENGINE_LOG(this, HIAI_AI_MODEL_MANAGER_INIT_FAIL, "[DEBUG] fail to init ai_model"); return HIAI_AI_MODEL_MANAGER_INIT_FAIL; } } } HIAI_ENGINE_LOG("FrameworkerEngine Init success"); return HIAI_OK; }