From c90ab602d7d6823867528b887606bc3b266ff1a3 Mon Sep 17 00:00:00 2001 From: zhouzj <41366441+zzjjay@users.noreply.github.com> Date: Wed, 23 Nov 2022 10:17:14 +0800 Subject: [PATCH] [ACT] Rename 'Quantization' to 'QuantAware'. (#1536) * [ACT] Rename 'Quantization' to 'QuantAware'. * Fix examples. * Fix tests. --- example/auto_compression/README.md | 2 +- .../detection/configs/picodet_s_qat_dis.yaml | 2 +- .../detection/configs/ppyoloe_l_qat_dis.yaml | 2 +- .../detection/configs/ppyoloe_s_qat_dis.yaml | 2 +- .../detection/configs/ssd_mbv1_voc_qat_dis.yaml | 2 +- .../detection/configs/tinypose_qat_dis.yaml | 2 +- .../detection/configs/yolov3_mbv1_qat_dis.yaml | 2 +- example/auto_compression/hyperparameter_tutorial.md | 4 ++-- .../configs/EfficientNetB0/qat_dis.yaml | 2 +- .../configs/GhostNet_x1_0/qat_dis.yaml | 2 +- .../configs/InceptionV3/qat_dis.yaml | 2 +- .../configs/MobileNetV1/qat_dis.yaml | 2 +- .../configs/MobileNetV3_large_x1_0/qat_dis.yaml | 2 +- .../configs/PPHGNet_tiny/qat_dis.yaml | 2 +- .../configs/PPLCNetV2_base/qat_dis.yaml | 2 +- .../configs/PPLCNet_x1_0/qat_dis.yaml | 2 +- .../configs/ResNet50_vd/qat_dis.yaml | 2 +- .../configs/ShuffleNetV2_x1_0/qat_dis.yaml | 2 +- .../configs/SqueezeNet1_0/qat_dis.yaml | 2 +- .../qat_dis.yaml | 2 +- .../ocr/configs/ppocrv3_det_qat_dist.yaml | 2 +- .../pytorch_yolo_series/configs/yolov5s_qat_dis.yaml | 2 +- .../pytorch_yolo_series/configs/yolov6s_qat_dis.yaml | 2 +- .../configs/yolov6s_v2_qat_dis.yaml | 2 +- .../pytorch_yolo_series/configs/yolov7_qat_dis.yaml | 2 +- .../configs/yolov7_tiny_qat_dis.yaml | 2 +- .../configs/BiSeNetV2/BiSeNetV2_qat.yaml | 2 +- .../configs/deeplabv3/deeplabv3_qat.yaml | 2 +- .../configs/hrnet/hrnet_qat.yaml | 2 +- .../configs/pp_humanseg/pp_humanseg_qat.yaml | 2 +- .../configs/pp_liteseg/pp_liteseg_qat.yaml | 2 +- .../semantic_segmentation/configs/unet/unet_qat.yaml | 2 +- .../tensorflow_mobilenet/configs/mbv1_qat_dis.yaml | 2 +- .../configs/mobilenetv3_large_qat_dis.yaml | 2 +- .../picodet/configs/picodet_npu.yaml | 2 +- .../configs/picodet_npu_with_postprocess.yaml | 2 +- .../ppyoloe/configs/ppyoloe_s_416_qat_dis.yaml | 2 +- .../ppyoloe/configs/ppyoloe_s_qat_dis.yaml | 2 +- paddleslim/auto_compression/__init__.py | 3 ++- paddleslim/auto_compression/auto_strategy.py | 12 ++++++------ paddleslim/auto_compression/compressor.py | 4 ++-- paddleslim/auto_compression/strategy_config.py | 8 ++++---- tests/act/qat_dist_train.yaml | 2 +- 43 files changed, 54 insertions(+), 53 deletions(-) diff --git a/example/auto_compression/README.md b/example/auto_compression/README.md index 9035f76f..9e7f280d 100644 --- a/example/auto_compression/README.md +++ b/example/auto_compression/README.md @@ -178,7 +178,7 @@ ac = AutoCompression( params_filename="inference.pdiparams", save_dir="MobileNetV1_quant", config={"QuantPost": {}, "HyperParameterOptimization": {'ptq_algo': ['avg'], 'max_quant_count': 3}}, - ### config={"Quantization": {}, "Distillation": {}}, ### 如果您的系统为Windows系统, 请使用当前这一行配置 + ### config={"QuantAware": {}, "Distillation": {}}, ### 如果您的系统为Windows系统, 请使用当前这一行配置 train_dataloader=train_loader, eval_dataloader=train_loader) ac.compress() diff --git a/example/auto_compression/detection/configs/picodet_s_qat_dis.yaml b/example/auto_compression/detection/configs/picodet_s_qat_dis.yaml index 3b1b08e1..72de6102 100644 --- a/example/auto_compression/detection/configs/picodet_s_qat_dis.yaml +++ b/example/auto_compression/detection/configs/picodet_s_qat_dis.yaml @@ -18,7 +18,7 @@ Distillation: - conv2d_154.tmp_1 - tmp_8 -Quantization: +QuantAware: use_pact: true activation_quantize_type: 'moving_average_abs_max' weight_bits: 8 diff --git a/example/auto_compression/detection/configs/ppyoloe_l_qat_dis.yaml b/example/auto_compression/detection/configs/ppyoloe_l_qat_dis.yaml index 730fb14a..d1c28b06 100644 --- a/example/auto_compression/detection/configs/ppyoloe_l_qat_dis.yaml +++ b/example/auto_compression/detection/configs/ppyoloe_l_qat_dis.yaml @@ -11,7 +11,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true use_pact: true activation_quantize_type: 'moving_average_abs_max' diff --git a/example/auto_compression/detection/configs/ppyoloe_s_qat_dis.yaml b/example/auto_compression/detection/configs/ppyoloe_s_qat_dis.yaml index be324ac7..2090baba 100644 --- a/example/auto_compression/detection/configs/ppyoloe_s_qat_dis.yaml +++ b/example/auto_compression/detection/configs/ppyoloe_s_qat_dis.yaml @@ -11,7 +11,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true use_pact: true activation_quantize_type: 'moving_average_abs_max' diff --git a/example/auto_compression/detection/configs/ssd_mbv1_voc_qat_dis.yaml b/example/auto_compression/detection/configs/ssd_mbv1_voc_qat_dis.yaml index fc532a0a..710a3a97 100644 --- a/example/auto_compression/detection/configs/ssd_mbv1_voc_qat_dis.yaml +++ b/example/auto_compression/detection/configs/ssd_mbv1_voc_qat_dis.yaml @@ -13,7 +13,7 @@ Distillation: - concat_2.tmp_0 - concat_1.tmp_0 -Quantization: +QuantAware: use_pact: True weight_quantize_type: 'channel_wise_abs_max' activation_quantize_type: 'moving_average_abs_max' diff --git a/example/auto_compression/detection/configs/tinypose_qat_dis.yaml b/example/auto_compression/detection/configs/tinypose_qat_dis.yaml index 237f7364..7cf508fc 100644 --- a/example/auto_compression/detection/configs/tinypose_qat_dis.yaml +++ b/example/auto_compression/detection/configs/tinypose_qat_dis.yaml @@ -12,7 +12,7 @@ Distillation: node: - conv2d_441.tmp_0 -Quantization: +QuantAware: use_pact: true activation_quantize_type: 'moving_average_abs_max' weight_quantize_type: 'channel_wise_abs_max' # 'abs_max' is layer wise quant diff --git a/example/auto_compression/detection/configs/yolov3_mbv1_qat_dis.yaml b/example/auto_compression/detection/configs/yolov3_mbv1_qat_dis.yaml index bc48a679..e0cf9a9b 100644 --- a/example/auto_compression/detection/configs/yolov3_mbv1_qat_dis.yaml +++ b/example/auto_compression/detection/configs/yolov3_mbv1_qat_dis.yaml @@ -13,7 +13,7 @@ Distillation: - conv2d_85.tmp_0 - conv2d_86.tmp_0 -Quantization: +QuantAware: activation_quantize_type: 'range_abs_max' quantize_op_types: - conv2d diff --git a/example/auto_compression/hyperparameter_tutorial.md b/example/auto_compression/hyperparameter_tutorial.md index 7a1218af..fc0f65f6 100644 --- a/example/auto_compression/hyperparameter_tutorial.md +++ b/example/auto_compression/hyperparameter_tutorial.md @@ -3,11 +3,11 @@ ## 1.1 各压缩方法超参解析 -### 1.1.1 量化训练(quantization) +### 1.1.1 量化训练(quant aware) 量化参数主要设置量化比特数和量化op类型,其中量化op包含卷积层(conv2d, depthwise_conv2d)和全连接层(mul, matmul_v2)。以下为只量化卷积层的示例: ```yaml -Quantization: +QuantAware: use_pact: false # 量化训练是否使用PACT方法 weight_quantize_type: 'channel_wise_abs_max' # 权重量化方式 quantize_op_types: [conv2d, depthwise_conv2d] # 量化OP列表 diff --git a/example/auto_compression/image_classification/configs/EfficientNetB0/qat_dis.yaml b/example/auto_compression/image_classification/configs/EfficientNetB0/qat_dis.yaml index 461f18e0..1bcc0e73 100644 --- a/example/auto_compression/image_classification/configs/EfficientNetB0/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/EfficientNetB0/qat_dis.yaml @@ -11,7 +11,7 @@ Distillation: node: - softmax_1.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/GhostNet_x1_0/qat_dis.yaml b/example/auto_compression/image_classification/configs/GhostNet_x1_0/qat_dis.yaml index 71e2eeaf..0e91d4c0 100644 --- a/example/auto_compression/image_classification/configs/GhostNet_x1_0/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/GhostNet_x1_0/qat_dis.yaml @@ -10,7 +10,7 @@ Distillation: loss: l2 node: - softmax_0.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/InceptionV3/qat_dis.yaml b/example/auto_compression/image_classification/configs/InceptionV3/qat_dis.yaml index 6276f703..3b1e4084 100644 --- a/example/auto_compression/image_classification/configs/InceptionV3/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/InceptionV3/qat_dis.yaml @@ -12,7 +12,7 @@ Distillation: loss: l2 node: - softmax_1.tmp_0 -Quantization: +QuantAware: is_full_quantize: false activation_quantize_type: moving_average_abs_max weight_quantize_type: channel_wise_abs_max diff --git a/example/auto_compression/image_classification/configs/MobileNetV1/qat_dis.yaml b/example/auto_compression/image_classification/configs/MobileNetV1/qat_dis.yaml index 9c3c2b97..8f74d745 100644 --- a/example/auto_compression/image_classification/configs/MobileNetV1/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/MobileNetV1/qat_dis.yaml @@ -10,7 +10,7 @@ Distillation: loss: l2 node: - softmax_0.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/MobileNetV3_large_x1_0/qat_dis.yaml b/example/auto_compression/image_classification/configs/MobileNetV3_large_x1_0/qat_dis.yaml index e6a2e104..2da27da8 100644 --- a/example/auto_compression/image_classification/configs/MobileNetV3_large_x1_0/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/MobileNetV3_large_x1_0/qat_dis.yaml @@ -9,7 +9,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/PPHGNet_tiny/qat_dis.yaml b/example/auto_compression/image_classification/configs/PPHGNet_tiny/qat_dis.yaml index 64d57117..50eb9898 100644 --- a/example/auto_compression/image_classification/configs/PPHGNet_tiny/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/PPHGNet_tiny/qat_dis.yaml @@ -11,7 +11,7 @@ Distillation: node: - softmax_1.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/PPLCNetV2_base/qat_dis.yaml b/example/auto_compression/image_classification/configs/PPLCNetV2_base/qat_dis.yaml index 00c05888..ae6f25b0 100644 --- a/example/auto_compression/image_classification/configs/PPLCNetV2_base/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/PPLCNetV2_base/qat_dis.yaml @@ -11,7 +11,7 @@ Distillation: node: - softmax_1.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/PPLCNet_x1_0/qat_dis.yaml b/example/auto_compression/image_classification/configs/PPLCNet_x1_0/qat_dis.yaml index d588f8a9..f0e67260 100644 --- a/example/auto_compression/image_classification/configs/PPLCNet_x1_0/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/PPLCNet_x1_0/qat_dis.yaml @@ -10,7 +10,7 @@ Distillation: loss: l2 node: - softmax_1.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/ResNet50_vd/qat_dis.yaml b/example/auto_compression/image_classification/configs/ResNet50_vd/qat_dis.yaml index 078915aa..2d0ea1eb 100644 --- a/example/auto_compression/image_classification/configs/ResNet50_vd/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/ResNet50_vd/qat_dis.yaml @@ -11,7 +11,7 @@ Distillation: node: - softmax_0.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/ShuffleNetV2_x1_0/qat_dis.yaml b/example/auto_compression/image_classification/configs/ShuffleNetV2_x1_0/qat_dis.yaml index 0c0ca531..31c618e4 100644 --- a/example/auto_compression/image_classification/configs/ShuffleNetV2_x1_0/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/ShuffleNetV2_x1_0/qat_dis.yaml @@ -10,7 +10,7 @@ Distillation: loss: l2 node: - softmax_0.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/image_classification/configs/SqueezeNet1_0/qat_dis.yaml b/example/auto_compression/image_classification/configs/SqueezeNet1_0/qat_dis.yaml index 073f3872..4b9964af 100644 --- a/example/auto_compression/image_classification/configs/SqueezeNet1_0/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/SqueezeNet1_0/qat_dis.yaml @@ -10,7 +10,7 @@ Distillation: loss: l2 node: - softmax_0.tmp_0 -Quantization: +QuantAware: activation_bits: 8 is_full_quantize: false activation_quantize_type: moving_average_abs_max diff --git a/example/auto_compression/image_classification/configs/SwinTransformer_base_patch4_window7_224/qat_dis.yaml b/example/auto_compression/image_classification/configs/SwinTransformer_base_patch4_window7_224/qat_dis.yaml index ce8f746f..99f61b77 100644 --- a/example/auto_compression/image_classification/configs/SwinTransformer_base_patch4_window7_224/qat_dis.yaml +++ b/example/auto_compression/image_classification/configs/SwinTransformer_base_patch4_window7_224/qat_dis.yaml @@ -10,7 +10,7 @@ Distillation: loss: l2 node: - softmax_48.tmp_0 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/ocr/configs/ppocrv3_det_qat_dist.yaml b/example/auto_compression/ocr/configs/ppocrv3_det_qat_dist.yaml index 7b54d420..b753dd71 100644 --- a/example/auto_compression/ocr/configs/ppocrv3_det_qat_dist.yaml +++ b/example/auto_compression/ocr/configs/ppocrv3_det_qat_dist.yaml @@ -9,7 +9,7 @@ Distillation: alpha: 1.0 loss: l2 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/auto_compression/pytorch_yolo_series/configs/yolov5s_qat_dis.yaml b/example/auto_compression/pytorch_yolo_series/configs/yolov5s_qat_dis.yaml index c2b230d8..683f4a6f 100644 --- a/example/auto_compression/pytorch_yolo_series/configs/yolov5s_qat_dis.yaml +++ b/example/auto_compression/pytorch_yolo_series/configs/yolov5s_qat_dis.yaml @@ -12,7 +12,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true use_pact: true activation_quantize_type: 'moving_average_abs_max' diff --git a/example/auto_compression/pytorch_yolo_series/configs/yolov6s_qat_dis.yaml b/example/auto_compression/pytorch_yolo_series/configs/yolov6s_qat_dis.yaml index 9a3f7af3..ded46306 100644 --- a/example/auto_compression/pytorch_yolo_series/configs/yolov6s_qat_dis.yaml +++ b/example/auto_compression/pytorch_yolo_series/configs/yolov6s_qat_dis.yaml @@ -12,7 +12,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true activation_quantize_type: 'moving_average_abs_max' quantize_op_types: diff --git a/example/auto_compression/pytorch_yolo_series/configs/yolov6s_v2_qat_dis.yaml b/example/auto_compression/pytorch_yolo_series/configs/yolov6s_v2_qat_dis.yaml index 4c775392..92acc3be 100644 --- a/example/auto_compression/pytorch_yolo_series/configs/yolov6s_v2_qat_dis.yaml +++ b/example/auto_compression/pytorch_yolo_series/configs/yolov6s_v2_qat_dis.yaml @@ -13,7 +13,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true activation_quantize_type: 'moving_average_abs_max' quantize_op_types: diff --git a/example/auto_compression/pytorch_yolo_series/configs/yolov7_qat_dis.yaml b/example/auto_compression/pytorch_yolo_series/configs/yolov7_qat_dis.yaml index b7dcce83..29c92a99 100644 --- a/example/auto_compression/pytorch_yolo_series/configs/yolov7_qat_dis.yaml +++ b/example/auto_compression/pytorch_yolo_series/configs/yolov7_qat_dis.yaml @@ -12,7 +12,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true activation_quantize_type: 'moving_average_abs_max' quantize_op_types: diff --git a/example/auto_compression/pytorch_yolo_series/configs/yolov7_tiny_qat_dis.yaml b/example/auto_compression/pytorch_yolo_series/configs/yolov7_tiny_qat_dis.yaml index 7359e0ee..84290237 100644 --- a/example/auto_compression/pytorch_yolo_series/configs/yolov7_tiny_qat_dis.yaml +++ b/example/auto_compression/pytorch_yolo_series/configs/yolov7_tiny_qat_dis.yaml @@ -12,7 +12,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: onnx_format: true activation_quantize_type: 'moving_average_abs_max' quantize_op_types: diff --git a/example/auto_compression/semantic_segmentation/configs/BiSeNetV2/BiSeNetV2_qat.yaml b/example/auto_compression/semantic_segmentation/configs/BiSeNetV2/BiSeNetV2_qat.yaml index 1de0705a..52700e2d 100644 --- a/example/auto_compression/semantic_segmentation/configs/BiSeNetV2/BiSeNetV2_qat.yaml +++ b/example/auto_compression/semantic_segmentation/configs/BiSeNetV2/BiSeNetV2_qat.yaml @@ -11,7 +11,7 @@ Distillation: node: - conv2d_103.tmp_1 -Quantization: +QuantAware: onnx_format: True quantize_op_types: - conv2d diff --git a/example/auto_compression/semantic_segmentation/configs/deeplabv3/deeplabv3_qat.yaml b/example/auto_compression/semantic_segmentation/configs/deeplabv3/deeplabv3_qat.yaml index 36c4e34e..3a2e8c62 100644 --- a/example/auto_compression/semantic_segmentation/configs/deeplabv3/deeplabv3_qat.yaml +++ b/example/auto_compression/semantic_segmentation/configs/deeplabv3/deeplabv3_qat.yaml @@ -11,7 +11,7 @@ Distillation: node: - conv2d_123.tmp_1 -Quantization: +QuantAware: onnx_format: True quantize_op_types: - conv2d diff --git a/example/auto_compression/semantic_segmentation/configs/hrnet/hrnet_qat.yaml b/example/auto_compression/semantic_segmentation/configs/hrnet/hrnet_qat.yaml index 1eec456e..8f852cdf 100644 --- a/example/auto_compression/semantic_segmentation/configs/hrnet/hrnet_qat.yaml +++ b/example/auto_compression/semantic_segmentation/configs/hrnet/hrnet_qat.yaml @@ -10,7 +10,7 @@ Distillation: node: - conv2d_613.tmp_1 -Quantization: +QuantAware: onnx_format: True quantize_op_types: - conv2d diff --git a/example/auto_compression/semantic_segmentation/configs/pp_humanseg/pp_humanseg_qat.yaml b/example/auto_compression/semantic_segmentation/configs/pp_humanseg/pp_humanseg_qat.yaml index 8893dc35..5b497a1e 100644 --- a/example/auto_compression/semantic_segmentation/configs/pp_humanseg/pp_humanseg_qat.yaml +++ b/example/auto_compression/semantic_segmentation/configs/pp_humanseg/pp_humanseg_qat.yaml @@ -10,7 +10,7 @@ Distillation: node: - batch_norm_47.tmp_2 -Quantization: +QuantAware: onnx_format: True quantize_op_types: - conv2d diff --git a/example/auto_compression/semantic_segmentation/configs/pp_liteseg/pp_liteseg_qat.yaml b/example/auto_compression/semantic_segmentation/configs/pp_liteseg/pp_liteseg_qat.yaml index 12eea7e2..f739354a 100644 --- a/example/auto_compression/semantic_segmentation/configs/pp_liteseg/pp_liteseg_qat.yaml +++ b/example/auto_compression/semantic_segmentation/configs/pp_liteseg/pp_liteseg_qat.yaml @@ -10,7 +10,7 @@ Distillation: node: - conv2d_95.tmp_0 -Quantization: +QuantAware: onnx_format: True quantize_op_types: - conv2d diff --git a/example/auto_compression/semantic_segmentation/configs/unet/unet_qat.yaml b/example/auto_compression/semantic_segmentation/configs/unet/unet_qat.yaml index ff055e2b..c25033f9 100644 --- a/example/auto_compression/semantic_segmentation/configs/unet/unet_qat.yaml +++ b/example/auto_compression/semantic_segmentation/configs/unet/unet_qat.yaml @@ -10,7 +10,7 @@ Distillation: node: - conv2d_37.tmp_1 -Quantization: +QuantAware: onnx_format: True quantize_op_types: - conv2d diff --git a/example/auto_compression/tensorflow_mobilenet/configs/mbv1_qat_dis.yaml b/example/auto_compression/tensorflow_mobilenet/configs/mbv1_qat_dis.yaml index 359ac18d..eda30fa3 100644 --- a/example/auto_compression/tensorflow_mobilenet/configs/mbv1_qat_dis.yaml +++ b/example/auto_compression/tensorflow_mobilenet/configs/mbv1_qat_dis.yaml @@ -38,7 +38,7 @@ Distillation: - batch_norm_26.tmp_3 - conv2d_42.tmp_1 -Quantization: +QuantAware: use_pact: true activation_bits: 8 is_full_quantize: false diff --git a/example/full_quantization/image_classification/configs/mobilenetv3_large_qat_dis.yaml b/example/full_quantization/image_classification/configs/mobilenetv3_large_qat_dis.yaml index 52c76219..8c72318b 100644 --- a/example/full_quantization/image_classification/configs/mobilenetv3_large_qat_dis.yaml +++ b/example/full_quantization/image_classification/configs/mobilenetv3_large_qat_dis.yaml @@ -9,7 +9,7 @@ Global: Distillation: alpha: 1.0 loss: soft_label -Quantization: +QuantAware: use_pact: true activation_bits: 8 activation_quantize_type: moving_average_abs_max diff --git a/example/full_quantization/picodet/configs/picodet_npu.yaml b/example/full_quantization/picodet/configs/picodet_npu.yaml index 2b6f6ab4..e48c3e44 100644 --- a/example/full_quantization/picodet/configs/picodet_npu.yaml +++ b/example/full_quantization/picodet/configs/picodet_npu.yaml @@ -15,7 +15,7 @@ PTQ: # Post Training Quantization batch_size: 32 batch_nums: 10 -Quantization: # Auto Compression +QuantAware: # Auto Compression use_pact: true activation_quantize_type: 'moving_average_abs_max' weight_bits: 8 diff --git a/example/full_quantization/picodet/configs/picodet_npu_with_postprocess.yaml b/example/full_quantization/picodet/configs/picodet_npu_with_postprocess.yaml index c28e608d..2ebc81a0 100644 --- a/example/full_quantization/picodet/configs/picodet_npu_with_postprocess.yaml +++ b/example/full_quantization/picodet/configs/picodet_npu_with_postprocess.yaml @@ -15,7 +15,7 @@ PTQ: # Post Training Quantization batch_size: 32 batch_nums: 10 -Quantization: # Auto Compression +QuantAware: # Auto Compression use_pact: true activation_quantize_type: 'moving_average_abs_max' weight_bits: 8 diff --git a/example/full_quantization/ppyoloe/configs/ppyoloe_s_416_qat_dis.yaml b/example/full_quantization/ppyoloe/configs/ppyoloe_s_416_qat_dis.yaml index bd08b8eb..964f361d 100644 --- a/example/full_quantization/ppyoloe/configs/ppyoloe_s_416_qat_dis.yaml +++ b/example/full_quantization/ppyoloe/configs/ppyoloe_s_416_qat_dis.yaml @@ -20,7 +20,7 @@ Distillation: alpha: 1.0 loss: soft_label -Quantization: # Auto Compression +QuantAware: # Auto Compression onnx_format: true use_pact: true activation_quantize_type: 'moving_average_abs_max' diff --git a/example/full_quantization/ppyoloe/configs/ppyoloe_s_qat_dis.yaml b/example/full_quantization/ppyoloe/configs/ppyoloe_s_qat_dis.yaml index 6867ef29..a0b6ab27 100644 --- a/example/full_quantization/ppyoloe/configs/ppyoloe_s_qat_dis.yaml +++ b/example/full_quantization/ppyoloe/configs/ppyoloe_s_qat_dis.yaml @@ -16,7 +16,7 @@ PTQ: # Post Training Quantization batch_size: 10 batch_nums: 10 -Quantization: # Auto Compression +QuantAware: # Auto Compression onnx_format: true use_pact: true activation_quantize_type: 'moving_average_abs_max' diff --git a/paddleslim/auto_compression/__init__.py b/paddleslim/auto_compression/__init__.py index cfc26259..bb0129b2 100644 --- a/paddleslim/auto_compression/__init__.py +++ b/paddleslim/auto_compression/__init__.py @@ -20,7 +20,8 @@ from .utils import * __all__ = [ "AutoCompression", - "Quantization", + "QuantAware", + "QuantPost", "Distillation", "MultiTeacherDistillation", "HyperParameterOptimization", diff --git a/paddleslim/auto_compression/auto_strategy.py b/paddleslim/auto_compression/auto_strategy.py index 35b36e8d..cfad16b7 100644 --- a/paddleslim/auto_compression/auto_strategy.py +++ b/paddleslim/auto_compression/auto_strategy.py @@ -125,17 +125,17 @@ def create_strategy_config(strategy_str, model_type): ### only platform is linux can use smac to do hyperparameter optimization ### choose quant_aware to do quantization in other platform if platform.system().lower() == 'linux': - quant_config = Quantization(**default_quant_config) + quant_config = QuantAware(**default_quant_config) hpo_config = HyperParameterOptimization(**hpo_config_tester) configs.append({ 'QuantPost': quant_config, 'HyperParameterOptimization': hpo_config }) else: - quant_config = Quantization(**default_quant_config) + quant_config = QuantAware(**default_quant_config) dis_config = Distillation() configs.append({ - 'Quantization': quant_config, + 'QuantAware': quant_config, 'Distillation': dis_config }) @@ -248,7 +248,7 @@ def get_final_quant_config(ptq_loss, model_type=None): return None ### if emd loss less than MAGIC_MAX_EMD_DISTANCE, select quant_post & hpo. elif ptq_loss < MAGIC_MAX_EMD_DISTANCE: - quant_config = Quantization(**default_quant_config) + quant_config = QuantAware(**default_quant_config) hpo_config = HyperParameterOptimization(**default_hpo_config) configs = [{ 'QuantPost': quant_config, @@ -257,9 +257,9 @@ def get_final_quant_config(ptq_loss, model_type=None): ### if emd loss greater than MAGIC_MAX_EMD_DISTANCE, select qat & dist. else: - quant_config = Quantization(**default_quant_config) + quant_config = QuantAware(**default_quant_config) dis_config = Distillation() - configs = [{'Quantization': quant_config, 'Distillation': dis_config}] + configs = [{'QuantAware': quant_config, 'Distillation': dis_config}] _logger.info("Start Quantization and Distillation Training.") return configs diff --git a/paddleslim/auto_compression/compressor.py b/paddleslim/auto_compression/compressor.py index d51d2830..e86551c7 100644 --- a/paddleslim/auto_compression/compressor.py +++ b/paddleslim/auto_compression/compressor.py @@ -88,7 +88,7 @@ class AutoCompression: Only one strategy(quant_post with hyperparameter optimization) can set train_config to None. Default: None. strategy_config(dict, list(dict), optional): The strategy config. You can set single config to get multi-strategy config, such as - 1. set ``Quantization`` and ``Distillation`` to get quant_aware and distillation compress config. + 1. set ``QuantAware`` and ``Distillation`` to get quant_aware and distillation compress config. The Quantization config can reference `https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/auto_compression/strategy_config.py#L55`_ . The Distillation config can reference `https://github.com/PaddlePaddle/PaddleSlim/blob/develop/paddleslim/auto_compression/strategy_config.py#L107`_ . 2. set ``QuantPost`` and ``HyperParameterOptimization`` to get quant_post and hyperparameter optimization compress config. @@ -350,7 +350,7 @@ class AutoCompression: strategy = [] config = [] for strategy_c in strategy_config: - quant_config = strategy_c.get("Quantization", None) + quant_config = strategy_c.get("QuantAware", None) hpo_config = strategy_c.get("HyperParameterOptimization", None) ptq_config = strategy_c.get("QuantPost", None) prune_config = strategy_c.get("ChannelPrune", None) diff --git a/paddleslim/auto_compression/strategy_config.py b/paddleslim/auto_compression/strategy_config.py index 0ebc341e..02d92042 100644 --- a/paddleslim/auto_compression/strategy_config.py +++ b/paddleslim/auto_compression/strategy_config.py @@ -16,7 +16,7 @@ from collections import namedtuple __all__ = [ "BaseStrategy", - "Quantization", + "QuantAware", "Distillation", "MultiTeacherDistillation", "HyperParameterOptimization", @@ -33,7 +33,7 @@ __all__ = [ ] SUPPORTED_CONFIG = [ - "Quantization", + "QuantAware", "Distillation", "MultiTeacherDistillation", "HyperParameterOptimization", @@ -52,7 +52,7 @@ class BaseStrategy: self.name = name -class Quantization(BaseStrategy): +class QuantAware(BaseStrategy): def __init__(self, quantize_op_types=[ 'conv2d', 'depthwise_conv2d', 'conv2d_transpose', 'mul', @@ -87,7 +87,7 @@ class Quantization(BaseStrategy): onnx_format(bool): Whether to export the quantized model with format of ONNX. Default is False. is_full_quantize(bool): If True, 'quantoze_op_types' will be TRANSFORM_PASS_OP_TYPES + QUANT_DEQUANT_PASS_OP_TYPES. Default: False. """ - super(Quantization, self).__init__("Quantization") + super(QuantAware, self).__init__("QuantAware") self.quantize_op_types = quantize_op_types self.weight_bits = weight_bits self.activation_bits = activation_bits diff --git a/tests/act/qat_dist_train.yaml b/tests/act/qat_dist_train.yaml index d0493c49..82266ed7 100644 --- a/tests/act/qat_dist_train.yaml +++ b/tests/act/qat_dist_train.yaml @@ -1,5 +1,5 @@ # For unittests -Quantization: +QuantAware: quantize_op_types: - conv2d - depthwise_conv2d -- GitLab