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必须与模型实际大小保持一致。