更新时间:2021-03-18 GMT+08:00
分享

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;
}
分享:

    相关文档

    相关产品