--dynamic_image_size
功能说明
设置输入图片的动态分辨率参数。适用于执行推理时,每次处理图片宽和高不固定的场景。
关联参数
- 该参数需要与--input_shape配合使用,不能与--dynamic_batch_size、--dynamic_dims、--input_shape_range同时使用。
- 使用该参数设置动态分辨率时,--input_format参数只支持配置为NCHW、NHWC;其他format场景下,设置分辨率请使用--dynamic_dims参数。
参数取值
参数值:动态分辨率参数,例如"imagesize1_height,imagesize1_width;imagesize2_height,imagesize2_width"。
参数值格式:指定的参数必须放在双引号中,档位之间英文分号分隔,每档内参数使用英文逗号分隔。
参数值约束:档位数取值范围为(1,100],即必须设置至少2个档位,最多支持100档配置。
推荐配置及收益
- 如果用户设置的分辨率数值过大或档位过多,可能会导致模型转换失败,此时建议用户减少档位或调低档位数值。
- 如果用户设置的分辨率数值过大或档位过多,在运行环境执行推理时,建议执行swapoff -a命令关闭swap交换区间作为内存的功能,防止出现由于内存不足,将swap交换空间作为内存继续调用,导致运行环境异常缓慢的情况。
示例
--input_shape="data:8,3,-1,-1;img_info:8,4,-1,-1" --dynamic_image_size="416,416;832,832"
其中,“--input_shape”中的“-1”表示设置动态分辨率。则ATC在编译模型时,支持的输入组合档数分别为:
第0档:data(8,3,416,416)+img_info(8,4,416,416)
第1档:data(8,3,832,832)+img_info(8,4,832,832)
支持的芯片型号
昇腾310B AI处理器
依赖约束
- 使用约束:
- 不支持含有过程动态shape算子(网络中间层shape不固定)的网络。
- 如果用户设置了动态分辨率,则请确保不同档位的分辨率能在原生框架下正常推理。
- 如果用户设置了动态分辨率,实际推理时,使用的数据集图片大小需要与具体使用的分辨率相匹配。
- 如果用户设置了动态分辨率,即输入图片的宽和高不确定,同时又通过--insert_op_conf参数设置了静态AIPP功能:该场景下,AIPP配置文件中不能开启Crop和Padding功能,并且需要将配置文件中的src_image_size_w和src_image_size_h取值设置为0。
- 如果用户设置了动态分辨率,同时又通过--insert_op_conf参数设置了动态AIPP功能:
实际推理时,调用《应用软件开发指南(C&C++)》手册中的“AscendCL API参考>模型加载与执行>aclmdlSetInputAIPP”接口,设置动态AIPP相关参数值时,不能开启Crop和Padding功能。该场景下,还需要确保通过aclmdlSetInputAIPP接口设置的宽和高与《应用软件开发指南(C&C++)》手册“AscendCL API参考>模型加载与执行>aclmdlSetDynamicHWSize”接口设置的宽、高相等,都必须设置成动态分辨率最大档位的宽、高。
- 某些场景下,通过该参数设置动态分辨率特性后,生成的离线模型网络结构会与固定分辨率场景下的不同,推理性能可能存在差异。
父主题: 输入选项