release commit
authorManu Mathew <a0393608@ti.com>
Fri, 24 Jan 2020 05:13:38 +0000 (10:43 +0530)
committerManu Mathew <a0393608@ti.com>
Fri, 24 Jan 2020 05:13:38 +0000 (10:43 +0530)
docs/Quantization.md

index c8b152f7c2256fd6d2c9778dd19275eb8ec6d82e..70ff6fea179dc37c99837d6074f6911fcc5a9c77 100644 (file)
@@ -1,9 +1,8 @@
 # Quantization
 
-## Introduction
-Quantization of a CNN model is the process of converting floating point data & operations to fixed point (integer). This includes quantization of weights, feature maps and all operations (including convolution). The quantization style used in this code is **power-of-2, symmetric quantization for both weights and activations**.
+Quantization of a CNN model is the process of converting floating point data & operations to fixed point (integer). This includes quantization of weights, feature maps and all operations (including convolution). The quantization style used in this code is **Power-Of-2, Symmetric, Per-Tensor Quantization** for both **Weights and Activations**. There is also an option to use Per-Channel Weight Quantization for Depthwise Convolution Layers.
 
-Accuracy of inference can degrade if the CNN model is quantized to 8bits using simple methods and steps have to be taken to minimize this accuracy loss. The parameters of the model need to be adjusted to suit quantization. This includes adjusting of weights, biases and activation ranges. This adjustment can be done as part of the Calibration or as part of Training.
+Accuracy of inference can degrade if the CNN model is quantized to 8bits using simple methods and steps have to be taken to minimize this accuracy loss. The parameters of the model need to be adjusted to suit quantization. This includes adjusting of weights, biases and activation ranges. This adjustment can be done as part of the Calibration or as part of Quantization Aware Training.
 
 ## Overview
 TI Deep Learning Library (TIDL) is a highly optimized runtime for Deep Learning Models on TI’s Jacinto7 TDA4x Devices (eg. TDA4VM). TIDL supports two kinds of Quantization schemes: (1) Post Training Calibration & Quantization, (2) Quantization Aware Training.<br>
@@ -99,29 +98,31 @@ The table below shows the Quantized Accuracy with various Calibration and method
 
 ###### Dataset: ImageNet Classification (Image Classification)
 
-|Mode Name               |Backbone   |Stride|Resolution|Float Acc%|Simple Calib Acc%|Adv Calib Acc%|Adv DW Calib Acc%|QAT Acc%    |Acc Drop - Adv Calib|Acc Drop - QAT|
-|----------              |-----------|------|----------|--------- |---              |---           |---              |---         |---                 |---           |
-|ResNet50(TorchVision)   |ResNet50   |32    |224x224   |**76.15** |75.56            |**75.56**     |75.56            |**76.05**   |-0.59               |-0.10         |
-|MobileNetV2(TorchVision)|MobileNetV2|32    |224x224   |**71.89** |67.77            |**68.39**     |69.34            |**70.74**   |-4.26               |-1.34         |
-|MobileNetV2(Shicai)     |MobileNetV2|32    |224x224   |**71.44** |0.0              |**68.81**     |70.65            |**70.54**   |-2.63               |-0.9          |
+|Mode Name          |Backbone   |Stride|Resolution|Float Acc%|Simple Calib Acc%|Adv Calib Acc%|Adv DW Calib Acc%|QAT Acc% |Acc Drop-Adv DW Calib|Acc Drop - QAT|
+|----------         |-----------|------|----------|--------- |---              |---           |---              |---      |---                   |---          |
+|ResNet50(TV)       |ResNet50   |32    |224x224   |**76.15** |75.56            |**75.56**     |75.56            |**76.05**|-0.59                 |-0.10        |
+|MobileNetV2(TV)    |MobileNetV2|32    |224x224   |**71.89** |67.77            |**68.39**     |69.34            |**70.74**|-2.55                 |-1.34        |
+|MobileNetV2(Shicai)|MobileNetV2|32    |224x224   |**71.44** |0.0              |**68.81**     |70.65            |**70.54**|-0.79                 |-0.9         |
 
 Notes:
 - For Image Classification, the accuracy measure used is % Top-1 Classification Accuracy. 'Top-1 Classification Accuracy' is abbreviated by Acc in the above table.<br>
-- MobileNetV2(Shicai) model is from https://github.com/shicai/MobileNet-Caffe (converted from caffe to PyTorch) - this is a tough model for quantization.<br><br>
+- (TV) Stands for TochVision: https://github.com/pytorch/vision
+- MobileNetV2(Shicai) model is from https://github.com/shicai/MobileNet-Caffe (converted from caffe to PyTorch) - this model was selected as this is a tough case for quantization.<br><br>
 
 ###### Dataset: Cityscapes Segmentation (Semantic Segmentation)
 
-|Mode Name               |Backbone   |Stride|Resolution|Float Acc%|Simple Calib Acc%|Adv Calib Acc%|Adv DW Calib Acc%|QAT Acc%|Acc Drop - Advanced Calib|Acc Drop - QAT|
-|----------              |-----------|------|----------|----------|---              |---           |---              |---               |---            |---           |
-|DeepLabV3Lite           |MobileNetV2|16    |768x384   |**69.13** |61.71            |**67.95**     |68.47            |**68.44**         |-1.18          |-0.69         |
+|Mode Name    |Backbone   |Stride|Resolution|Float Acc%|Simple Calib Acc%|Adv Calib Acc%|Adv DW Calib Acc%|QAT Acc% |Acc Drop-Advanced DW Calib|Acc Drop - QAT|
+|----------   |-----------|------|----------|----------|---              |---           |---              |---      |---                       |---           |
+|DeepLabV3Lite|MobileNetV2|16    |768x384   |**69.13** |61.71            |**67.95**     |68.47            |**68.44**|-0.66                     |-0.69         |
 
 Note: For Semantic Segmentation, the accuracy measure used in MeanIoU Accuracy. 'MeanIoU Accuracy' is abbreviated by Acc in the above table.
 
-**Terminology:**
+**Terminology:**<br>
+All of these are variants of Power-Of-2, Symmetric, Per-Tensor Quantization, depending on how the parameters are adjusted for Quantization.<br>
 - Simple Calib: Calibration based on min/max ranges
 - Adv Calib: Includes histogram based ranges, calibration of weight/bias parameters to compensate for quantization accuracy loss.
-- Adv DW Calib: Also include Per-Channel Weight Quantization for Depthwise layers
-- QAT: Quantization Aware Training with PyTorch Jacinto AI DevKit
+- Adv DW Calib: Also includes Per-Channel Weight Quantization for Depthwise layers
+- QAT: Quantization Aware Training with PyTorch Jacinto AI DevKit (Does not use Per-Channel Weight Quantization)
 
 **Conclusion based on Simulation Results:**<br>
 - Advanced Calibration Methods may have >2% Accuracy Drop in some cases.