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

AIModelManager::Init

初始化接口,主要完成模型加载。

函数格式

virtual AIStatus AIModelManager::Init(const AIConfig &config, const std::vector<AIModelDescription> &model_descs = {}) override;

参数说明

参数

说明

取值范围

config

配置信息。

关于AIConfig数据类型的定义,请参见AIConfig

-

model_descs

模型描述信息列表,支持从内存、文件加载模型,内存加载模型优先级高于从文件加载模型。

关于AIModelDescription数据类型的定义,请参见AIModelDescription

-

返回值

SUCCESS 初始化成功/FAILED 初始化失败。

调用示例

请注意,MODEL_NAME仅支持大小写字母、数字、下划线和点,MODEL_PATH仅支持大小写字母、数字、下划线。

  • 从文件加载模型:
        AIModelManager model_mngr;
        AIModelDescription model_desc;
        AIConfig config;
        /* 校验输入文件路径是否合法
           路径部分:支持大小写字母、数字、下划线
           文件名部分:支持大小写字母、数字、下划线和点(.)  */
        model_desc.set_path(MODEL_PATH);
        model_desc.set_name(MODEL_NAME);
        model_desc.set_type(0);
        vector<AIModelDescription> model_descs;
        model_descs.push_back(model_desc);
        // AIModelManager Init
        AIStatus ret = model_mngr.Init(config, model_descs);
        if (SUCCESS != ret)
        {
            printf("AIModelManager Init failed. ret = %d\n", ret);
            return -1;
        }
  • 从内存加载模型:
        AIModelManager model_mngr;
        AIModelDescription model_desc;
        vector<AIModelDescription> model_descs;
        AIConfig config;
        model_desc.set_name(MODEL_NAME);
        model_desc.set_type(0);
        char *model_data = nullptr;
        uint32_t model_size = 0;
        ASSERT_EQ(true, Utils::ReadFile(MODEL_PATH.c_str(), model_data, model_size));
        model_desc.set_data(model_data,model_size);
        model_desc.set_size(model_size);
        AIStatus ret = model_mngr.Init(config, model_descs);
        if (SUCCESS != ret)
        {
            printf("AIModelManager Init failed. ret = %d\n", ret);
            return -1;
        }
    }

    model_size必须与模型实际大小保持一致。

分享:

    相关文档

    相关产品