使用约束
- 对同一个模型,AIPP(包括静态AIPP和动态AIPP)与动态维度(ND格式)不能同时使用。
- 对同一个模型,以下方式,只能选择其中一种:
- 调用acl.mdl.set_dataset_tensor_desc接口设置Shape范围。
- 调用acl.mdl.set_dynamic_batch_size接口设置动态Batch。
- 调用acl.mdl.set_dynamic_hw_size接口设置动态分辨率。
- 调用acl.mdl.set_input_dynamic_dims接口设置动态维度的维度值。
- 申请模型推理的输出内存时,可以按照各档位的实际大小申请内存,也可以调用acl.mdl.get_output_size_by_index接口获取内存大小后再申请内存(建议使用该方式,确保内存足够)。
- 动态AIPP和动态Batch同时使用时:
- 调用acl.mdl.create_aipp接口设置“batchSize”时,“batchSize”要设置为最大Batch数。
- 模型中需要进行动态AIPP处理的data节点,其对应的输入内存大小需按照最大Batch来申请。
- 动态AIPP和动态分辨率同时使用时:
- 若在设置动态AIPP参数时,开启了抠图或缩放或补边功能,则不能与动态分辨率同时使用。
- 若在设置动态AIPP参数时,未开启抠图或缩放或补边功能,在与动态分辨率同时使用时,需确保通过acl.mdl.set_aipp_src_image_size接口设置的宽和高,与通过acl.mdl.set_dynamic_hw_size接口设置的宽和高相等,都必须设置成模型转换时动态分辨率最大档位的宽和高。
- 模型中需要进行动态AIPP处理的data节点,其对应的输入内存大小需按照最大分辨率(宽、高)来申请。
- 动态AIPP和动态Shape输入(设置Shape范围)同时使用时,动态AIPP的输出图片宽、高要在所设置的Shape范围内。
- 静态AIPP和动态分辨率同时使用时,由于动态分辨率场景下输入图片的宽和高不确定,因此在使用ATC工具的“insert_op_conf”参数传入AIPP配置文件时,AIPP配置文件中不能开启Crop和Padding功能,并且需要将配置文件中的“src_image_size_w”和“src_image_size_h”取值设置为0。
父主题: 模型动态推理