函数:destroy_config_handle
函数:set_input_dynamic_dims
| C函数原型 | aclError aclmdlSetInputDynamicDims(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlIODims *dims) |
|---|---|
| Python函数 | ret = acl.mdl.set_input_dynamic_dims(model_id, dataset_in, index, dims) |
| 函数功能 | 如果模型输入的Shape是动态的,可以调用该接口设置模型推理时具体维度的值。 |
| 输入说明 | **model_id:**int,模型ID。 调用acl.mdl.load_from_file接口/acl.mdl.load_from_mem接口/acl.mdl.load_from_file_with_mem接口/acl.mdl.load_from_mem_with_mem接口加载模型成功后,会返回模型ID。 dataset_in:int,表示模型的输入数据。 使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。 index:int,标识动态维度的输入index。 需调用acl.mdl.get_input_index_by_name接口获取,输入名称固定为“ascend_mbatch_shape_data”。 dims:dict,指定具体某一档的所有维度信息。 可以调用acl.mdl.get_input_dynamic_dims接口获取指定模型支持的动态维度档位数以及每一档中的值。 例如:使用ATC工具进行模型转换时,input_shap="data:1,1,40,-1;label:1,-1;mask:-1,-1" ,dynamic_dims="20,20,1,1; 40,40,2,2; 80,60,4,4",若输入数据的真实维度为(1,1,40,20,1,20,1,1),则dims输入示例如下(name暂不使用): dims = {'dimCount': 8, 'name': '', 'dims': [1,1,40,20,1,20,1,1]} |
| 返回值说明 | ret:int,错误码 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用流程与示例,参见动态Batch/动态分辨率/动态维度(设置多档维度值)。 |
父主题: 模型加载与执行
函数:create_config_handle
| C函数原型 | aclmdlConfigHandle *aclmdlCreateConfigHandle() |
|---|---|
| Python函数 | config_handle = acl.mdl.create_config_handle() |
| 函数功能 | 创建aclmdlConfigHandle类型的数据,表示一个模型加载的配置对象。同步接口。 如需销毁aclmdlConfigHandle类型的数据,请参见acl.mdl.destroy_config_handle。 |
| 输入说明 | 无 |
| 返回值说明 | config_handle:int,aclmdlConfigHandle类型的指针地址。 - 返回非0表示成功。 - 返回0表示失败。 |
| 约束说明 | 无 |
父主题: 模型加载与执行
函数:destroy_config_handle
| C函数原型 | aclError aclmdlDestroyConfigHandle(aclmdlConfigHandle *handle) |
|---|---|
| Python函数 | ret = acl.mdl.destroy_config_handle(config_handle) |
| 函数功能 | 销毁通过acl.mdl.create_config_handle接口创建的aclmdlConfigHandle类型的数据。同步接口。 |
| 输入说明 | config_handle:int,待销毁的aclmdlConfigHandle类型的指针地址。 |
| 返回值说明 | ret:int,错误码 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 无 |
父主题: 模型加载与执行
函数:set_config_opt
| C函数原型 | aclError aclmdlSetConfigOpt(aclmdlConfigHandle *handle, aclmdlConfigAttr attr, const void *attrValue, size_t valueSize) |
|---|---|
| Python函数 | ret = acl.mdl.set_config_opt(config_handle, attr, attrValue) |
| 函数功能 | 设置模型加载的配置对象中的各属性的取值,包括模型执行的优先级、模型的文件路径或内存地址、内存大小等。 |
| 输入说明 | config_handle:int,指定模型加载的配置对象的指针地址。需提前调用acl.mdl.create_config_handle接口创建该对象的指针地址。 attr:int,指定需设置的属性,取值请参考aclmdlConfigAttr。 attrValue:int,指定设置的属性值。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 按如下接口调用顺序可实现模型加载的功能: 1. 调用acl.mdl.create_config_handle接口创建模型加载的配置对象。 2. 多次调用acl.mdl.set_config_opt接口设置配置对象中每个属性的值。 3. 调用acl.mdl.load_with_config接口指定模型加载时需要的配置信息,并进行模型加载。 4. 模型加载成功后,调用acl.mdl.destroy_config_handle接口销毁。 |
| 相关接口 | 使用acl.mdl.set_config_opt接口、acl.mdl.load_with_config接口时,是通过配置对象中的属性来区分,在加载模型时是从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理。 当前pyACL还提供了以下接口实现模型加载的功能,从使用的接口上区分从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理。 - acl.mdl.load_from_file接口 - acl.mdl.load_from_mem接口 - acl.mdl.load_from_file_with_mem接口 - acl.mdl.load_from_mem_with_mem接口 |
父主题: 模型加载与执行
函数:load_with_config
| C函数原型 | aclError aclmdlLoadWithConfig(const aclmdlConfigHandle *handle, uint32_t *modelId) |
|---|---|
| Python函数 | model_id, ret = acl.mdl.load_with_config(config_handle) |
| 函数功能 | 指定模型加载时需要的配置信息,并进行模型加载。 |
| 输入说明 | config_handle:int,指定模型加载的配置对象。需提前调用acl.mdl.create_config_handle接口创建该对象,与acl.mdl.set_config_opt中的config_handle保持一致。 |
| 返回值说明 | model_id:int,系统完成模型加载后生成的模型ID。 ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 在加载前,请先根据文件的大小评估内存空间是否足够,内存空间不足,会导致应用程序异常。 - 按如下接口调用顺序可实现模型加载的功能: 1. 调用acl.mdl.create_config_handle接口创建模型加载的配置对象。 2. 多次调用acl.mdl.set_config_opt接口设置配置对象中每个属性的值。 3. 调用acl.mdl.load_with_config接口指定模型加载时需要的配置信息,并进行模型加载。 4. 模型加载成功后,调用acl.mdl.destroy_config_handle接口销毁。 |
| 相关接口 | 使用acl.mdl.set_config_opt接口、acl.mdl.load_with_config接口时,是通过配置对象中的属性来区分,在加载模型时是从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理。 当前pyACL还提供了以下接口实现模型加载的功能,从使用的接口上区分从文件加载,还是从内存加载,以及内存是由系统内部管理,还是由用户管理。 - acl.mdl.load_from_file接口 - acl.mdl.load_from_mem接口 - acl.mdl.load_from_file_with_mem接口 - acl.mdl.load_from_mem_with_mem接口 |
父主题: 模型加载与执行
函数:get_tensor_real_name
| C函数原型 | const char *aclmdlGetTensorRealName(const aclmdlDesc *modelDesc, const char *name) |
|---|---|
| Python函数 | real_name = acl.mdl.get_tensor_real_name(model_desc, name) |
| 函数功能 | 根据指定名称获取Tensor的真实名称。同步接口。 acl.mdl.get_tensor_real_name接口需要与acl.mdl.get_input_dims/acl.mdl.get_input_dims_v2/acl.mdl.get_output_dims/acl.mdl.get_cur_output_dims接口配合使用。 |
| 输入说明 | model_desc:int,aclmdlDesc类型的指针地址。 需提前调用acl.mdl.create_desc接口创建aclmdlDesc类型的数据。 name:str,指定名称,用于根据该名称获取Tensor的真实名称。 |
| 返回值说明 | real_name:str,返回Tensor真实名称。 若“model_desc”或“name”为空,则返回0。 |
| 约束说明 | 无 |
父主题: 模型加载与执行
在线提单