在实际工程中,由于并非所有浮点模型均能够转为量化模型,因此在转换之前需要进行一次检查,这个check过程,会走一遍模型转换的过程,其运行的基本流程如下图所示。 但是对于比较耗时的步骤,进行了简化处理。该命令在完成模型的检查后,会输出检查结果和OP在设备上的部署情况。
请先使用 HBRuntime 对您的浮点onnx模型进行推理,确保模型合法,再参考下方方法使用hb_compile对模型是否可转换为量化模型进行验证。
使用hb_compile验证模型时,参考指令如下:
如您的模型为多输入模型,可参考如下指令:
参数名称 | 参数说明 |
-h, --help | 显示帮助信息并退出。 |
--march | BPU的微架构。使用S100处理器需设置为nash-e ,使用S100P处理器需设置为nash-m 。 |
-m, --model | Caffe或ONNX浮点模型文件。
|
--proto | 用于指定Caffe模型的prototxt文件。 |
-i, --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 参数即可。 |
如您在模型验证过程中发现 The converted model node information
提示结果和在模型转换过程中得到的 The converted model node information
提示结果不一致,可能是因为在做模型验证的过程中,实际上是有一个默认的yaml配置的,而如果您在进行转换前进行了yaml的配置,一些参数的不同可能会导致此种情况的发生,可能会导致此种情况发生的yaml配置参数包括:mean_value
、 scale_value
、 std_value
和 quant_config
。