Skip to main content

aclmdlSetInputAIPP

aclmdlSetDynamicBatchSize

函数功能

在动态Batch场景下,在模型执行前调用本接口设置模型推理时的批量大小Batch(每次处理图片的数量)。

函数原型

aclError aclmdlSetDynamicBatchSize(uint32_t modelId, aclmdlDataset *dataset, size_t index, uint64_t batchSize)

参数说明

参数名输入/输出说明
modelId输入模型ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。
dataset输入&输出模型推理的输入数据的指针。 使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。
index输入标识动态Batch输入的输入index,需调用aclmdlGetInputIndexByName接口获取,输入名称固定为ACL_DYNAMIC_TENSOR_NAME。
batchSize输入模型推理时的批量大小Batch。 此处设置的batch size只能是模型构建时设置的Batch档位中的某一档。 如果不清楚模型构建时的Batch档位设置,也可以调用aclmdlGetDynamicBatch接口获取指定模型支持的Batch档位数以及每一档中的batch size。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见模型动态Shape输入推理

父主题: 模型加载与执行

aclmdlSetDynamicHWSize

函数功能

动态分辨率场景下,在模型执行前调用本接口设置模型推理时输入图片的高和宽。

函数原型

aclError aclmdlSetDynamicHWSize(uint32_t modelId, aclmdlDataset *dataset, size_t index, uint64_t height, uint64_t width)

参数说明

参数名输入/输出说明
modelId输入模型ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。
dataset输入&输出模型推理的输入数据的指针。 使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。
index输入标识动态分辨率输入的输入index,需调用aclmdlGetInputIndexByName接口获取,输入名称固定为ACL_DYNAMIC_TENSOR_NAME。
height输入需设置的H值。 此处设置的分辨率只能是模型构建时设置的分辨率档位中的某一档。 如果不清楚模型构建时的分辨率档位,也可以调用aclmdlGetDynamicHW接口获取指定模型支持的分辨率档位数以及每一档中的宽、高。
width输入需设置的W值。 此处设置的分辨率只能是模型构建时设置的分辨率档位中的某一档。 如果不清楚模型构建时的分辨率档位,也可以调用aclmdlGetDynamicHW接口获取指定模型支持的分辨率档位数以及每一档中的宽、高。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见模型动态Shape输入推理

父主题: 模型加载与执行

aclmdlSetInputAIPP

函数功能

动态AIPP场景下,根据指定的动态AIPP输入的输入index,设置模型推理时的AIPP参数值,同步接口。

动态AIPP支持的几种操作的计算方式及其计算顺序如下:抠图->色域转换->缩放(当前版本不支持缩放)->减均值/归一化->padding。

约束说明

  • 经过动态AIPP处理后的图像的宽、高必须与原始模型中输入Shape中的宽、高保持一致。

  • 多Batch场景下,根据每个Batch的配置计算出动态AIPP后输出图片的宽、高,经过动态AIPP后每个Batch的输出图片宽、高必须是一致的。计算输出图片宽、高的计算公式如表1所示。

  • 抠图或者缩放或者padding之后,对图片宽、高的校验规则如下,其中,aippOutputW、aippOutputH分别表示AIPP输出图片的宽、高,其它参数是aclmdlSetAIPPSrcImageSizeaclmdlSetAIPPScfParamsaclmdlSetAIPPCropParamsaclmdlSetAIPPPaddingParams接口的入参:

    表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

函数原型

aclError aclmdlSetInputAIPP(uint32_t modelId, aclmdlDataset *dataset, size_t index, const aclmdlAIPP *aippParmsSet)

参数说明

参数名输入/输出说明
modelId输入模型的ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。
dataset输入模型推理的输入数据的指针。 使用aclmdlDataset类型的数据描述模型推理时的输入数据,输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。
index输入标识动态AIPP输入的输入index。 多个动态AIPP输入的场景下,用户可调用aclmdlGetAippType接口获取指定模型输入所关联的动态AIPP输入的输入index。 为保证向前兼容,如果明确只有一个动态AIPP输入,可调用aclmdlGetInputIndexByName接口获取,输入名称固定为ACL_DYNAMIC_AIPP_NAME。
aippParmsSet输入动态AIPP参数对象的指针。 提前调用aclmdlCreateAIPP接口创建aclmdlAIPP类型的数据。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见模型动态AIPP推理

父主题: 模型加载与执行

aclmdlGetFirstAippInfo

函数功能

获取模型AIPP(包括静态AIPP和动态AIPP)的配置信息。

AIPP支持的几种操作的计算方式及其计算顺序如下:抠图->色域转换->缩放(当前版本不支持缩放)->减均值/归一化->padding。

约束说明

如果使用本接口获取模型中动态AIPP的信息,只能获取aclAippInfo结构体中如下参数的值:srcFormat、srcDatatype、srcDimNum、shapeCount、outDims,其它参数值无效。

函数原型

aclError aclmdlGetFirstAippInfo(uint32_t modelId, size_t index, aclAippInfo *aippInfo)

参数说明

参数名输入/输出说明
modelId输入模型ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。
index输入模型中输入的index。
aippInfo输出获取指定输入上AIPP配置信息的指针。 详细说明及参数解释,请参考《ATC工具使用指南》。

返回值说明

返回0表示成功,返回非0表示失败。

父主题: 模型加载与执行

aclmdlGetAippType

函数功能

获取指定模型的指定输入所支持的AIPP类型(动态AIPP或静态AIPP)及动态AIPP输入对应的index值。

函数原型

aclError aclmdlGetAippType(uint32_t modelId, size_t index, aclmdlInputAippType *type, size_t *dynamicAttachedDataIndex)

参数说明

参数名输入/输出说明
modelId输入指定模型的ID。 调用aclmdlLoadFromFile接口/aclmdlLoadFromMem接口/aclmdlLoadFromFileWithMem接口/aclmdlLoadFromMemWithMem接口加载模型成功后,会返回模型ID。
index输入模型中输入的index。
type输出指定模型输入的AIPP类型的指针。
dynamicAttachedDataIndex输出当type不为ACL_DATA_WITH_DYNAMIC_AIPP时,该值返回0xFFFFFFFF,表示无效。 当type为ACL_DATA_WITH_DYNAMIC_AIPP时,该值返回动态AIPP输入(用于配置动态AIPP参数)的index。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用示例,参见动态AIPP(多个动态AIPP输入)

父主题: 模型加载与执行

在线提单