Why mess if do INT8 optimizing with low-rank approximation SSD

We implemented a SSD in TensorRT 3.0.2 with plugins(deploy_gie.prototxt), the performance is 46 fps with 704x448 input and INT8 optimized running at Tesla P4. But the result is mess and the bbox is useless once we do low-rank approximation together(deploy_gie_low_rank.prototxt). Could it be INT8 optimizing doesn’t work with 1x3 convolution kernel?
deploy_gie.proto.txt (15.3 KB)
deploy_gie_low_rank.proto.txt (33.7 KB)

Hi,

Could you help to check if the result of low rank model is good on FLOAT mode?
Thanks.

Hi,
AastaLLL, we are running the low rank model without INT8 optimizing and the result is correct, it is a detect cnn visible by deepstream playback module. Can we provide a demo program with .cpp, .caffemodel, labels.txt and demo.jpg and upload them to this topic?

Thanks.

Hi,

Have you implemented the calibration for INT8 mode?

Thanks.

Hi,

We have implemented the calibration for INT8 mode with 2 times, and it is very fast even IPlugin layer present.
I will discuss with Neo how to provide the extra information to get more help from you.

Thanks.

Hi,

We are keep updating our .caffemodel file, when should we update the INT8 Calibration Table file, and how many images needed for doing the INT8 Calibration? We using batch 6 and 1000 images now.

Thanks.

Hi,

We have received your information internally and are checking.
Will update to you later.

Thanks.

Thanks for you help.

Hi,

Could you please share the following information?

1. Which calibration type do you use? Legacy or entropy?
2. Could you share the calibration score for original/optimized VGG networks?

Thanks.

Hi,

1.Entropy.
2.We used calibration with SSD network, we visualized bbox result with deepstream video live detect sample code, and it is not so obviously to calculate score. We need do some work to finish this.

Thanks.

Hi,

Is there any alternative to check the accuracy of original and optimized calibration?
We want to make sure the calibration for optimized VGG is good first.

Thanks.

Hi,

We think the optimized ones lost accuracy, it generate meanless bboxs. We optimized SSD with pruning and the result is good.
Is there any small and common CNN can do INT8 and low-rank optimization together?

Thanks.

Dear AastaLLL,

  1. We have done the calibration on non-optimized VGG network, and the INT8 network output is correct.
  2. We did the same process on the low rank optimized VGG network, the INT8 network output is wrong.

According to the two procedure, we believe there is no problem with our calibration procedure, and we doubt:

  1. maybe there is some problem in the INT8 calibration tool when dealing with Nx1 or 1xN conv layer.
  2. maybe there is some problem in the TensorRT INT8 forward calculation when dealing with Nx1 or 1xN conv layer.

We did not do extra experiments on public dataset, so we can not supply you more evidence.

Hi,

Thanks for your message.
We are trying to reproduce this issue with a simpler model to narrow down the root cause.

Will update information with you later.

Hi,

We hope there is some news information soon.

Thanks.

Hi,

We found that the INT8 calibration is sensitive to the scale but still need some time to check.
Will update information with you later.

Thanks.

Dear AastaLLL,

Is there any updates?

Hi,

Could you help us to reproduce this issue with LeNet and MNIST use case?

LeNet is a tiny model; it can help us to monitor the behavior of calibrator.
MNIST is a simpler use case without bounding box handler; it allows us to check the network output directly.

A: Test a standard MNIST LeNet model with FP32 mode ---------------> should be correct
B: Apply INT8 calibration on step-A ------------------------------------> should be correct
C: Test a low-rank optimized MNIST LeNet model with FP32 mode ----> should be correct
D: Apply INT8 calibration on step-C ------------------------------------> shoud reproduce the error

Thanks.

Dear AastaLLL,

OK, we provide you the new package in private, which contains state C and state D, accompany with full dataset, which you can re-do the INT8 calibration if you think the problem lies in INT8 calibration process.

Hi,

Thanks for your help.
Could you share the data from the forum with a private message directly?

Thanks.