RGB输入时quantized.onnx和bin的一致性对比方法

对于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