---
title: 函数：set_aipp_by_input_index
description: "| C函数原型 | aclError aclmdlSetAIPPByInputIndex(uint32\_t modelId, aclmdlDataset \*dataset, size\_t index, const aclmdlAIPP \*aippParmsSet) |"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgp/aclpythondevg_01_0146.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgp/aclpythondevg_01_0146.html
indexId: b0874bb2f8f99f462f11897b1d76f522f4adb4c89d91eb08f3999eeece5b95c8108
---
# 函数：set_aipp_by_input_index

| C函数原型 | aclError aclmdlSetAIPPByInputIndex(uint32\_t modelId, aclmdlDataset \*dataset, size\_t index, const aclmdlAIPP \*aippParmsSet) |
| --- | --- |
| Python函数 | ret = acl.mdl.set\_aipp\_by\_input\_index(model\_id, dataset\_in, index, 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\_in：int，表示模型推理的输入数据的指针地址。 使用aclmdlDataset类型的数据描述模型推理时的输入数据，输入的内存地址、内存大小用aclDataBuffer类型的数据来描述。 index：int，表示在第几个输入上设置动态AIPP参数。如果该输入没有关联动态AIPP输入，则返回报错。 可调用acl.mdl.get\_aipp\_type查询指定模型的指定输入是否有关联的动态AIPP输入，若有，则本接口的index参数值与acl.mdl.get\_aipp\_type接口的index参数值保持一致；若无，则无需设置动态AIPP参数。 aipp：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\_srcImage\_size、acl.mdl.set\_aipp\_scf\_params、acl.mdl.set\_aipp\_crop\_params、acl.mdl.set\_aipp\_padding\_params接口的入参请参考表1。 |
| 参考资源 | 接口调用示例，参见动态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 |
