使用 hrt_model_exec infer
工具模型推理,用户自定义输入,推理一帧。
程序单线程运行单帧数据,输出模型运行的时间。
模型支持范围:qat模型,ptq模型。
参数 | 参数说明 | 关联参数 | |
---|---|---|---|
-h, --help | 无。 | 显示帮助信息。 | 无。 |
-v, --version | 无。 | 查看工具的 dnn 预测库版本号。 | 无。 |
infer | 无。 | 该参数执行模型推理,获取模型推理结果。 | 该参数需要与 input_file 一起使用,指定输入图片路径,工具根据模型信息resize图片,整理模型输入信息。 |
model_file | string | 模型文件路径,多个路径可通过逗号分隔。 | 无。 |
model_name | string | 指定某个模型的名称。 | 无。 |
input_file | string | 模型输入信息。 输入后缀必须为 PNG /JPG /JPEG /png /jpg /jpeg /bin /txt 中的一种。每个输入之间需要用英文字符的逗号隔开 , ,如:xxx.jpg,input.txt 。 | 该参数需要与子命令infer 配合使用,指定输入图片路径,工具根据模型信息resize图片,整理模型输入信息。 |
core_id | string | 指定运行核。0:任意核,1:core0,2:core1,以此类推。默认为 0。当指定多个核运行时,用英文字符的逗号隔开,如 "1,2" 。 | 无。 |
input_img_properties | string | 模型图像输入的色彩空间信息,参数范围[Y , UV ]。 | 该参数需要与input_file 一起使用,input_file 中每一个图片类型输入都需要指定一个Y /UV 类型,每个输入色彩空间之间需要用英文字符的逗号隔开, ,如:Y,UV 。 |
input_valid_shape | string | 模型动态 validShape 输入信息。若模型输入属性 validShape 中含有 -1 ,则需要将 -1 的部分进行补全,多个 validShape 间通过英文分号间隔。如: --input_valid_shape="1,376,376,1;1,188,188,2" 。 | 无。 |
input_stride | string | 模型动态 stride 输入信息。多个 stride 间通过英文分号间隔。若模型输入属性 stride 中含有 -1 ,则需要将 -1 的部分进行补全,多个 stride 间通过英文分号间隔。如: --input_stride="50176,224,1,1;25088,224,2,1" 。 | 无。 |
frame_count | int | 执行模型运行帧数。infer 时,默认为 1。perf 时,默认为 200。 | 当子命令为perf 时,没有设置perf_time 时生效。 |
dump_intermediate | string | dump模型每一层输入和输出,参数范围[0, 3]。默认为0。dump_intermediate=0 时,默认dump功能关闭。dump_intermediate=1 时,模型中每一层节点输入数据输出数据以 bin 方式保存, 其中节点输入输出为 stride 数据。dump_intermediate=2 时,模型中每一层节点输入数据和输出数据以 bin 和 txt 两种方式保存,其中节点输入输出为 stride 数据。dump_intermediate=3 时,型中每一层节点输入数据和输出数据以 bin 和 txt 两种方式保存,其中节点输入输出为 valid 数据。 | 无。 |
enable_dump | bool | 使能dump模型输入和输出。默认为 false 。 | 无。 |
dump_precision | int | 控制txt格式输出float型数据的小数点位数。默认为9。 | 无。 |
dequantize_process | bool | 对模型输出进行反量化处理。默认为false 。 | 当enable_dump 参数为true 时生效。 |
remove_padding_process | bool | 对模型输出进行去padding处理。默认为 false 。 | 当enable_dump 参数为true 时生效。 |
dump_format | string | dump模型输入和输出的格式,参数范围[bin, txt ]。默认为 bin 。 | 无。 |
dump_txt_axis | int | 控制txt格式输入输出的换行规则。 若输出维度为n,则参数范围为[0, n]。 默认为 -1,一行一个数据。 | 无。 |
enable_cls_post_process | bool | 使能分类后处理。默认为 false 。 | 该参数需要与子命令infer 配合使用,目前只支持ptq分类模型的后处理,打印分类结果。 |
dump_path | string | dump模型输入输出的路径。 | 该参数在设置enable_dump 或dump_intermediate 时生效。 |
工具 infer
推理功能支持多输入模型的推理,支持图片输入、二进制文件输入以及文本文件输入,输入数据用逗号隔开。 模型的输入信息可以通过 model_info
进行查看。
若模型的输入是动态的,您需要根据输入实际情况使用 input_valid_shape
和 input_stride
参数来补全动态信息。您可以选择以下两种方式指定参数:
只给定动态输入的 validShape
或 stride
信息。
给定所有输入的 validShape
或 stride
信息,非动态输入的信息必须与模型信息保持一致。
工具内部会对于动态输入的信息会进行最大限度的自动补全,方便您更简单的进行性能评测,您可以根据实际情况选择是否交由工具内部进行自动补全。
若输入 stride
为动态的,validShape
为固定的,您可以不指定 input_stride
参数,工具会自动按照最小对齐规则进行补齐并打印对齐信息。
若输入 validShape
和 stride
都是动态的:
若指定输入为图片类型,您需要指定图片的色彩空间信息 input_img_properties
,其余参数可不指定,工具内部按照图片的大小补全 input_valid_shape
和 input_stride
信息。
若指定输入为图片之外的类型或不指定输入,您需要设置 input_valid_shape
信息,内部会自动补全 input_stride
信息并打印。
以 动态输入介绍 章节中的模型为例,您可以通过以下命令运行模型:
当 input_file
给定图像输入时,需要使用 input_img_properties
参数来指定您想使用该图片的哪个色彩空间当做模型的输入,目前只支持 Y
和 UV
两种色彩空间。