Int8 calibration accuracy loss

I am using tensorrt recently, in order to pursue faster speed, I use int8 inference,I used 1000 images to calibrate. But when I tested the map of the relative float, I found that the accuracy was much lower.I am using the int8 calibration of uffssd in the sample as a template.Is there any special attention in the calibration process?
I really hope to get answers.

Has anyone done this work, can you help me with it?


Did you try to increase the number of calibration images?

may be mix precision can help you , but in my classfication task, it make little sense with only six fp32 con layers.
I confused why nvidia technical support guys can provide little help or samples !

I had the same problem. I am using the int8 calibration of yolov3, and I used 500 images to calibrate, the mAP is low, then I used 1000 images, the mAP is much lower. How to deal with it?

@1432163351 , have you checked whether there’s an mAP difference in FP32? my accuracy drop compared to the paper’s mAP was found in FP32 rather than the conversion from FP32 to Int8

Refer to

@hengchenkim Actually, I have checked the mAP which was inference using tensorRT in FP32, the mAP is the same with that inference in tensorflow. The details is below.

I have a tensorflow model of yolov3, I get the mAP using tensorflow with the model. Then I convert the tensorflow model to .uff, to run it in tensorRT(no int8 calibration), and I get the mAP, it is the same with that in tensorflow.

At last, I run int8 calibration using 1000 images, and I got the mAP, it droped a lot compared with the mAP in tensorflow.