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_type
、 mean_value
、 scale_value
、 calibration_type
、 run_on_bpu
、 run_on_cpu
、 optimization
、 set_node_data_type
、 node_info
。