Please install and setup AIMET before proceeding further.
This model was tested with the torch_gpu
variant of AIMET 1.24.0.
export PYTHONPATH=$PYTHONPATH:<aimet_model_zoo_path>
Install required packages
pip install -r <path to aimet-model-zoo>/aimet_zoo_torch/rangenet/requirements.txt
Semantic Kitti can be downloaded from here:
The folder structure and format of Semantic kitti dataset is like below:
--dataset
--sequences
--00
--velodyne
--000000.bin
--000001.bin
--labels
--000000.label
--000001.label
--poses.txt
python rangenet_quanteval.py \
--dataset-path <The path to the dataset, default is '../models/train/tasks/semantic/dataset/'>
--use-cuda <Use cuda or cpu, default is True> \
- The original prepared RangeNet++ checkpoint can be downloaded from here: darknet21.tar.gz or rangeNet_plus_FP32.tar.gz
- Optimized w8a8 checkpoint can be downloaded from here: rangeNet_plus_w8a8_checkpoint.pth
- Optimized w4a8 checkpoint can be downloaded from here: rangeNet_plus_w4a8_checkpoint.pth
- The Quantization Simulation (Quantsim) Configuration file can be downloaded from here: default_config_per_channel.json (Please see this page for more information on this file).
- Weight quantization: 4 bits for w4a8, 8 bits for w8a8, per channel symmetric quantization
- Bias parameters are not quantized
- Activation quantization: 8 bits, asymmetric quantization
- Model inputs are quantized
- Percentile was used as quantization scheme, and the value was set to 99.99
- Bn fold and Adaround have been applied on optimized checkpoint
Below are the mIoU results of this RangeNet++ implementation on SemanticKitti:
Model Configuration | mIoU (%) |
---|---|
rangeNet_plus_FP32 | 47.2 |
rangeNet_plus_FP32 + simple PTQ(w8a8) | 45.0 |
rangeNet_plus_W8A8_checkpoint | 47.1 |
rangeNet_plus_W4A8_checkpoint | 46.8 |