Skip to main content

总体说明

函数:set_aipp_pixel_var_reci

C函数原型aclError **aclmdlSetAIPPPixelVarReci(**aclmdlAIPP *aippParmsSet, float dtcPixelVarReciChn0, float dtcPixelVarReciChn1, float dtcPixelVarReciChn2, float dtcPixelVarReciChn3, uint64_t batchIndex)
Python函数ret = acl.mdl.set_aipp_pixel_var_reci(aipp_parms_set, dtc_pixel_var_reci_chn0, dtc_pixel_var_reci_chn1, dtc_pixel_var_reci_chn2, dtc_pixel_var_reci_chn3, batch_index)
函数功能动态AIPP场景下,设置通道的方差,同步接口。
输入说明aipp_parms_set:int,动态AIPP参数对象,需提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。 dtc_pixel_var_reci_chn0:int,通道0的方差,默认值为1.0,取值范围:[-65504, 65504]。 dtc_pixel_var_reci_chn1:int,通道1的方差,默认值为1.0,取值范围:[-65504, 65504]。 dtc_pixel_var_reci_chn2:int,通道2的方差,默认值为1.0,取值范围:[-65504, 65504]。 dtc_pixel_var_reci_chn3:int,通道3的方差,如果只有3个通道,则该参数传默认值1.0,取值范围:[-65504, 65504]。 batch_index:int,指定对第几个Batch上的图片设置通道的方差,取值范围:[0, batch_size),batch_size是在调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据时设置。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: 设置动态AIPP参数

函数:set_input_aipp

C函数原型aclError aclmdlSetInputAIPP(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlAIPP *aippParmsSet)
Python函数ret = acl.mdl.set_input_aipp(model_id, dataset, index, aipp_parms_set)
函数功能动态AIPP场景下,根据指定的动态AIPP输入的输入index,设置模型推理时的AIPP参数值,同步接口。 动态AIPP支持的几种操作的计算方式及其计算顺序如下:抠图->色域转换->缩放(当前版本不支持缩放)->减均值/归一化->padding。
输入说明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:int,表示模型的输入数据,使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。 index:int,标识动态AIPP输入的输入index。
- 多个动态AIPP输入的场景下,用户可调用acl.mdl.get_aipp_type接口获取指定模型输入所关联的动态AIPP输入的输入index。
- 为保证向前兼容,如果明确只有一个动态AIPP输入,可调用acl.mdl.get_input_index_by_name接口获取,输入名称固定为“ascend_dynamic_aipp_data”。
aipp_parms_set:int,动态AIPP参数对象的指针地址,需提前调用acl.mdl.create_aipp接口创建aclmdlAIPP类型的数据。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明经过动态AIPP处理后的图像的宽、高必须与原始模型中输入Shape中的宽、高保持一致。
- 多Batch场景下,根据每个Batch的配置计算出动态AIPP后输出图片的宽、高,经过动态AIPP后每个Batch的输出图片宽、高必须是一致的。计算输出图片宽、高的计算公式如表1所示。
- 抠图或者缩放或者padding之后,对图片宽、高的校验规则如下,其中,aippOutputW、aippOutputH分别表示AIPP输出图片的宽、高,其它参数是acl.mdl.set_aipp_src_image_sizeacl.mdl.set_aipp_crop_paramsacl.mdl.set_aipp_padding_params接口的入参。
参考资源接口调用流程与示例,参见动态AIPP(单个动态AIPP输入)

表1 输出图片宽、高计算公式

抠图缩放补边(padding)动态AIPP输出图片的宽、高
aippOutputW = srcImageSizeW aippOutputH = srcImageSizeH
aippOutputW = cropSizeW aippOutputH = cropSizeH
aippOutputW = scfOutputSizeW aippOutputH = scfOutputSizeH
aippOutputW = cropSizeW + paddingSizeLeft + paddingSizeRight aippOutputH = cropSizeH + paddingSizeTop + paddingSizeBottom
aippOutputW = srcImageSizeW + paddingSizeLeft + paddingSizeRight aippOutputH = srcImageSizeH + paddingSizeTop + paddingSizeBottom
aippOutputW = scfOutputSizeW + paddingSizeLeft + paddingSizeRight aippOutputH = scfOutputSizeH + paddingSizeTop + paddingSizeBottom
aippOutputW = scfOutputSizeW aippOutputH = scfOutputSizeH
aippOutputW = scfOutputSizeW + paddingSizeLeft + paddingSizeRight aippOutputH = scfOutputSizeH + paddingSizeTop + paddingSizeBottom

父主题: 设置动态AIPP参数

总体说明

您可以通过以下接口获取aclmdlDataset类型的数据、并对aclmdlDataset的数据执行一些操作。该数据类型下的操作接口都是同步接口。

aclmdlDataset主要用于描述模型推理时的输入数据、输出数据,模型可能存在多个输入、多个输出,每个输入/输出的内存地址、内存大小用aclDataBuffer类型的数据来描述。

父主题: aclmdlDataset

函数:create_dataset

C函数原型aclmdlDataset *****aclmdlCreateDataset()
Python函数mdl_dataset = acl.mdl.create_dataset()
函数功能创建aclmdlDataset类型的数据。
输入说明
返回值说明mdl_dataset:int,aclmdlDataset类型的指针地址。
约束说明

父主题: aclmdlDataset

函数:destroy_dataset

C函数原型aclError aclmdlDestroyDataset(const aclmdlDataset *dataset)
Python函数ret = acl.mdl.destroy_dataset(dataset)
函数功能销毁aclmdlDataset类型的数据。
输入说明dataset:int,待销毁的aclmdlDataset的指针地址。
返回值说明ret:int,错误码
- 返回0表示成功。
- 返回其它值表示失败。
约束说明销毁类接口:调用该接口后,不能继续使用已释放或销毁的资源,建议调用该接口后,将相关资源设置为无效值(例如,置为0或None)。

父主题: aclmdlDataset

函数:add_dataset_buffer

C函数原型aclError **aclmdlAddDatasetBuffer(**aclmdlDataset *dataset, aclDataBuffer *dataBuffer)
Python函数dataset, ret = acl.mdl.add_dataset_buffer(dataset, data_buffer)
函数功能向aclmdlDataset中增加aclDataBuffer。
输入说明dataset:int,待增加aclDataBuffer的aclmdlDataset地址。 data_buffer:int,待增加的aclDataBuffer地址。
返回值说明dataset:int,待增加aclDataBuffer的aclmdlDataset地址。 ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: aclmdlDataset

在线提单