MQBench Quantization Aware Training with PyTorch
I am using MQBench(Model Quantization Benchmark)(http://mqbench.tech/) to quantize the model for deployment.
MQBench is a benchmark and framework for evluating the quantization algorithms under real world hardware deployments.
Prerequisites
- Python 3.7+
- PyTorch 1.8.1+
Install MQBench Lib
Before run this repository, you should install MQBench:
git clone https://github.com/ModelTC/MQBench.git
cd MQBench
python setup.py build
python setup.py install
Training Fp32 Model
# Start training fp32 model with:
# model_name can be ResNet18, MobileNet, ...
python main.py model_name
# You can manually config the training with:
python main.py --resume --lr=0.01
Training Quantize Model
# Start training quantize model with:
# model_name can be ResNet18, MobileNet, ...
python main.py model_name --quantize
# You can manually config the training with:
python main.py --resume --parallel DP --BackendType Tensorrt --quantize
python -m torch.distributed.launch main.py --local_rank 0 --parallel DDP --resume --BackendType Tensorrt --quantize
Fp32 Accuracy
Model | Acc. |
---|---|
VGG16 | 92.64% |
ResNet18 | 93.02% |
ResNet50 | 93.62% |
ResNet101 | 93.75% |
RegNetX_200MF | 94.24% |
RegNetY_400MF | 94.29% |
MobileNetV2 | 94.43% |
ResNeXt29(32x4d) | 94.73% |
ResNeXt29(2x64d) | 94.82% |
SimpleDLA | 94.89% |
DenseNet121 | 95.04% |
PreActResNet18 | 95.11% |
DPN92 | 95.16% |
DLA | 95.47% |