epoch_size - meaning has changed to number of images instead of number of iterations...
authorManu Mathew <a0393608@ti.com>
Thu, 14 May 2020 04:19:12 +0000 (09:49 +0530)
committerManu Mathew <a0393608@ti.com>
Thu, 14 May 2020 07:57:09 +0000 (13:27 +0530)
docs/Calibration.md
docs/Quantization.md
run_quantization.sh
run_quantization_example.sh

index 2c97bb95680856e5fba7a820b181cf8b746eca5c..385c0c7bde8515ef9d6ade7da081a5ac3c2009f1 100644 (file)
@@ -75,18 +75,18 @@ Few examples of calibration are provided below. These commands are also listed i
 
 - Calibration of ImageNet Classification MobileNetV2 model
 ```
 
 - Calibration of ImageNet Classification MobileNetV2 model
 ```
-python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification --pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth --batch_size 64 --quantize True --epochs 1 --epoch_size 100
+python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification --pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth --batch_size 64 --quantize True --epochs 1 --epoch_size 0.1
 ```
 
 - Calibration of ImageNet Classification ResNet50 model
 ```
 ```
 
 - Calibration of ImageNet Classification ResNet50 model
 ```
-python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification --pretrained https://download.pytorch.org/models/resnet50-19c8e357.pth --batch_size 64 --quantize True --epochs 1 --epoch_size 100
+python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification --pretrained https://download.pytorch.org/models/resnet50-19c8e357.pth --batch_size 64 --quantize True --epochs 1 --epoch_size 0.1
 ```
 
 - Calibration of Cityscapes Semantic Segmentation model
 ```
 python ./scripts/train_segmentation_main.py --phase calibration --dataset_name cityscapes_segmentation --model_name deeplabv3lite_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 
 --pretrained ./data/modelzoo/pytorch/semantic_segmentation/cityscapes/jacinto_ai/deeplabv3lite_mobilenetv2_tv_resize768x384_best.pth 
 ```
 
 - Calibration of Cityscapes Semantic Segmentation model
 ```
 python ./scripts/train_segmentation_main.py --phase calibration --dataset_name cityscapes_segmentation --model_name deeplabv3lite_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 
 --pretrained ./data/modelzoo/pytorch/semantic_segmentation/cityscapes/jacinto_ai/deeplabv3lite_mobilenetv2_tv_resize768x384_best.pth 
---batch_size 12 --quantize True --epochs 1 --epoch_size 100
+--batch_size 12 --quantize True --epochs 1
 ```
 
 ```
 
index 7c6dc13e5d4f40f8c9d2a20c783ce3e28d84e53e..e33af7ec0eb04fd90b93a494662486a9675fd0fd 100644 (file)
@@ -108,12 +108,12 @@ Optional: We have provided a utility function called pytorch_jacinto_ai.xnn.util
 ####  Example commands for QAT
 ImageNet Classification: *In this example, only a fraction of the training samples are used in each training epoch to speedup training. Remove the argument --epoch_size to use all the training samples.*
 ```
 ####  Example commands for QAT
 ImageNet Classification: *In this example, only a fraction of the training samples are used in each training epoch to speedup training. Remove the argument --epoch_size to use all the training samples.*
 ```
-python ./scripts/train_classification_main.py --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification --pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth --batch_size 64 --quantize True --epochs 50 --epoch_size 1000 --lr 1e-5 --evaluate_start False
+python ./scripts/train_classification_main.py --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification --pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth --batch_size 64 --quantize True --epochs 50 --epoch_size 0.1 --lr 1e-5 --evaluate_start False
 ```
 
 Cityscapes Semantic Segmentation:<br>
 ```
 ```
 
 Cityscapes Semantic Segmentation:<br>
 ```
-python ./scripts/train_segmentation_main.py --dataset_name cityscapes_segmentation --model_name deeplabv3lite_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 --pretrained ./data/modelzoo/pytorch/semantic_segmentation/cityscapes/jacinto_ai/deeplabv3lite_mobilenetv2_tv_resize768x384_best.pth.tar --batch_size 8 --quantize True --epochs 50 --lr 1e-5 --evaluate_start False
+python ./scripts/train_segmentation_main.py --dataset_name cityscapes_segmentation --model_name deeplabv3lite_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 --pretrained ./data/modelzoo/pytorch/semantic_segmentation/cityscapes/jacinto_ai/deeplabv3lite_mobilenetv2_tv_resize768x384_best.pth.tar --batch_size 6 --quantize True --epochs 50 --lr 1e-5 --evaluate_start False
 ```
 
 For more examples, please see the files run_qunatization_example.sh and examples/quantization_example.py
 ```
 
 For more examples, please see the files run_qunatization_example.sh and examples/quantization_example.py
index c36767a6c9a182b38496e6634027b1e27a3281f4..914dcd2611ddc9cb8eb141364a7b53e64e927fbc 100755 (executable)
@@ -7,13 +7,13 @@
 #### Image Classification - Quantization Aware Training - MobileNetV2
 #python ./scripts/train_classification_main.py --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth \
 #### Image Classification - Quantization Aware Training - MobileNetV2
 #python ./scripts/train_classification_main.py --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth \
-#--batch_size 64 --quantize True --epochs 25 --epoch_size 1000 --lr 1e-5 --evaluate_start False
+#--batch_size 64 --quantize True --epochs 25 --epoch_size 0.1 --lr 1e-5 --evaluate_start False
 #
 #
 #### Image Classification - Quantization Aware Training - MobileNetV2(Shicai) - a TOUGH MobileNetV2 pretrained model
 #python ./scripts/train_classification_main.py --dataset_name image_folder_classification --model_name mobilenetv2_shicai_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained ./data/modelzoo/experimental/pytorch/others/shicai/MobileNet-Caffe/mobilenetv2_shicai_rgb.pth \
 #
 #
 #### Image Classification - Quantization Aware Training - MobileNetV2(Shicai) - a TOUGH MobileNetV2 pretrained model
 #python ./scripts/train_classification_main.py --dataset_name image_folder_classification --model_name mobilenetv2_shicai_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained ./data/modelzoo/experimental/pytorch/others/shicai/MobileNet-Caffe/mobilenetv2_shicai_rgb.pth \
-#--batch_size 64 --quantize True --epochs 25 --epoch_size 1000 --lr 1e-5 --evaluate_start False
+#--batch_size 64 --quantize True --epochs 25 --epoch_size 0.1 --lr 1e-5 --evaluate_start False
 #
 #
 #### Semantic Segmentation - Quantization Aware Training for MobileNetV2+DeeplabV3Lite
 #
 #
 #### Semantic Segmentation - Quantization Aware Training for MobileNetV2+DeeplabV3Lite
 #### Image Classification - Post Training Calibration & Quantization - ResNet50
 #python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name resnet50_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained https://download.pytorch.org/models/resnet50-19c8e357.pth \
 #### Image Classification - Post Training Calibration & Quantization - ResNet50
 #python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name resnet50_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained https://download.pytorch.org/models/resnet50-19c8e357.pth \
-#--batch_size 64 --quantize True --epochs 1 --epoch_size 100 --evaluate_start False
+#--batch_size 64 --quantize True --epochs 1 --epoch_size 0.1 --evaluate_start False
 #
 #
 #### Image Classification - Post Training Calibration & Quantization - MobileNetV2
 #python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth \
 #
 #
 #### Image Classification - Post Training Calibration & Quantization - MobileNetV2
 #python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_tv_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained https://download.pytorch.org/models/mobilenet_v2-b0353104.pth \
-#--batch_size 64 --quantize True --epochs 1 --epoch_size 100 --evaluate_start False
+#--batch_size 64 --quantize True --epochs 1 --epoch_size 0.1 --evaluate_start False
 #
 #
 #### Image Classification - Post Training Calibration & Quantization for a TOUGH MobileNetV2 pretrained model
 #python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_shicai_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained ./data/modelzoo/pytorch/image_classification/imagenet1k/shicai/mobilenetv2_shicai_rgb.pth \
 #
 #
 #### Image Classification - Post Training Calibration & Quantization for a TOUGH MobileNetV2 pretrained model
 #python ./scripts/train_classification_main.py --phase calibration --dataset_name image_folder_classification --model_name mobilenetv2_shicai_x1 --data_path ./data/datasets/image_folder_classification \
 #--pretrained ./data/modelzoo/pytorch/image_classification/imagenet1k/shicai/mobilenetv2_shicai_rgb.pth \
-#--batch_size 64 --quantize True --epochs 1 --epoch_size 100 --evaluate_start False
+#--batch_size 64 --quantize True --epochs 1 --epoch_size 0.1 --evaluate_start False
 #
 #
 ### Semantic Segmentation - Post Training Calibration &  Quantization for MobileNetV2+DeeplabV3Lite
 #python ./scripts/train_segmentation_main.py --phase calibration --dataset_name cityscapes_segmentation --model_name deeplabv3lite_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 \
 #--pretrained ./data/modelzoo/pytorch/semantic_seg/cityscapes/jacinto_ai/deeplabv3lite_mobilenetv2_tv_768x384_best.pth \
 #
 #
 ### Semantic Segmentation - Post Training Calibration &  Quantization for MobileNetV2+DeeplabV3Lite
 #python ./scripts/train_segmentation_main.py --phase calibration --dataset_name cityscapes_segmentation --model_name deeplabv3lite_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 \
 #--pretrained ./data/modelzoo/pytorch/semantic_seg/cityscapes/jacinto_ai/deeplabv3lite_mobilenetv2_tv_768x384_best.pth \
-#--batch_size 6 --quantize True --epochs 1 --epoch_size 100 --evaluate_start False
+#--batch_size 6 --quantize True --epochs 1 --evaluate_start False
 #
 #
 ### Semantic Segmentation - Post Training Calibration &  Quantization for MobileNetV2+UNetLite
 #python ./scripts/train_segmentation_main.py --phase calibration --dataset_name cityscapes_segmentation --model_name unetlite_pixel2pixel_aspp_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 \
 #--pretrained ./data/modelzoo/pytorch/semantic_seg/cityscapes/jacinto_ai/unet_aspp_mobilenetv2_tv_768x384_best.pth \
 #
 #
 ### Semantic Segmentation - Post Training Calibration &  Quantization for MobileNetV2+UNetLite
 #python ./scripts/train_segmentation_main.py --phase calibration --dataset_name cityscapes_segmentation --model_name unetlite_pixel2pixel_aspp_mobilenetv2_tv --data_path ./data/datasets/cityscapes/data --img_resize 384 768 --output_size 1024 2048 --gpus 0 1 \
 #--pretrained ./data/modelzoo/pytorch/semantic_seg/cityscapes/jacinto_ai/unet_aspp_mobilenetv2_tv_768x384_best.pth \
-#--batch_size 12 --quantize True --epochs 1 --epoch_size 100 --evaluate_start False
\ No newline at end of file
+#--batch_size 6 --quantize True --epochs 1 --evaluate_start False
\ No newline at end of file
index 4cfe685c8e44c834135d0c278b86084465452acd..4ee691658fa99ca6a361b7ce36278fe2aba46895 100755 (executable)
@@ -32,7 +32,7 @@ declare -A model_pretrained=(
 lr=1e-5             # initial learning rate for quantization aware training - recommend to use 1e-5 (or at max 5e-5)
 batch_size=64       # use a relatively smaller batch size as quantization aware training does not use multi-gpu
 epochs=10           # numerb of epochs to train
 lr=1e-5             # initial learning rate for quantization aware training - recommend to use 1e-5 (or at max 5e-5)
 batch_size=64       # use a relatively smaller batch size as quantization aware training does not use multi-gpu
 epochs=10           # numerb of epochs to train
-epoch_size=1000     # artificially limit one training epoch to this many iterations - this argument is only used to limit the training time and may hurt acuracy - set to 0 to use the full training epoch
+epoch_size=0.1     # artificially limit one training epoch to this many iterations - this argument is only used to limit the training time and may hurt acuracy - set to 0 to use the full training epoch
 epoch_size_val=0    # validation epoch size - set to 0 for full validation epoch
 
 
 epoch_size_val=0    # validation epoch size - set to 0 for full validation epoch