对于input_type_rt为rgb或bgr编译的模型,当前不适用hb_verifier工具进行一致性验证,用户可以使用这种方法手动比较一致性。
quantized.onnx
模型以rgb作为输入时,需要将输入数据处理成int8的格式,可以把处理后的数据保存下来作为hrt_model_exec infer的输入。
from horizon_tc_ui import HB_ONNXRuntimeimport numpy as npimport cv2def read_img(input_name): data = cv2.imread("input.png") data = cv2.cvtColor(data, cv2.COLOR_BGR2RGB) data = np.transpose(data,(2,0,1)) data = data[np.newaxis,:,:,:] data = (data - 128).astype(np.int8) data.tofile("input_128_int8.bin") return datadef main(): sess = HB_ONNXRuntime(model_file="./quantized_model.onnx") input_names = [input.name for input in sess.get_inputs()] output_names = [output.name for output in sess.get_outputs()] feed_dict = dict() for input_name in input_names: feed_dict[input_name] = read_img(input_name) outputs = sess.run(output_names, feed_dict) print(outputs[0][0]) np.savetxt('output_onnx.txt', outputs[0][0])if __name__ == '__main__': main()
bin
将上一步保存的input_128_int8.bin作为输入数据,并dump输出结果,和quantized.onnx的输出对比,正常情况下应当完全一致。
hrt_model_exec infer --model-file model.bin --input-file input_128_int8.bin --enable_dump true --dump_format txt