6.2.2.1. 模型检查命令(hb_mapper checker)

在实际工程中,由于并非所有浮点模型均能够转为量化模型,因此在转换之前需要进行一次检查, 这个check过程,会走一遍模型转换的过程,但是对于比较耗时的步骤,进行了简化处理。 该命令在完成模型的检查后,会输出检查结果和OP在设备上的部署情况。

6.2.2.1.1. 使用方法

hb_mapper checker的使用方法:

hb_mapper checker --model-type ${model_type} \
                  --march ${march} \
                  --model ${caffe_model/onnx_model} \
                  --proto ${caffe_proto} \
                  --input-shape ${input_node_name} ${input_shape} \
                  --output ${output}

6.2.2.1.2. 命令行参数

hb_mapper checker的命令行参数:
--help

显示帮助信息并退出。

--model-type

用于指定检查输入的模型类型,目前只支持设置 caffe 或者 onnx

--march

用于指定BPU的微架构。若使用X/J3系列处理器则设置为 bernoulli2,若使用J5处理器则设置为 bayes,默认值为 bayes

--model

Caffe或ONNX浮点模型文件。

  • model-type 被指定为 caffe 时,取值为Caffe模型的caffemodel文件名称。

  • model-type 被指定为 onnx 时,取值为ONNX模型文件名称。

--proto

用于指定Caffe模型的prototxt文件,此参数仅在 model-type 指定 caffe 时有效。

--input-shape

可选参数,用于指定输入模型的输入节点以及该节点的输入的shape,其shape以 x 分隔。

取值为 {input_name} {NxHxWxC/NxCxHxW}input_name 与shape之间以空格分隔。 例如模型输入节点名称为 data,输入shape为 [1,3,224,224],此时应设置为 data 1x3x224x224。 如果此处配置shape与模型内shape信息不一致,会以此处配置为准。

注解

注意,一个 --input-shape 只接受一个name和shape组合,如果您的模型有多个输入节点,在命令中多次配置 --input-shape 参数即可。

--output

该参数已经废弃,log信息存储于 hb_mapper_checker.log 中。

注解

如您在使用check过程中发现 The converted model node information 提示结果和在使用makertbin过程中得到的 The converted model node information 提示结果不一致, 可能是因为在做check的过程中,实际上是有一个默认的yaml配置的,而如果您在进行转换前进行了yaml的配置,一些参数的不同可能会导致此种情况的发生, 可能会导致此种情况发生的yaml配置参数包括: norm_typemean_valuescale_valuecalibration_typerun_on_bpurun_on_cpuoptimizationset_node_data_typenode_info