diff --git a/example/auto_compression/README.md b/example/auto_compression/README.md index 9035f76f4c7fbc891b379430193e9dc5ed623a6c..9e7f280d1c2839d6be37980e299b6d86a149dbb5 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 3b1b08e1b721b520d1c435c198b6fafdeb9b1a13..72de6102b0e16285eb3059022a4f5dc0bc70fb4f 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 730fb14ad4adfe197ac1410f736c8b17e81a4c9c..d1c28b0603d94314e3a8525ec0085e6d6d61e5b5 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 be324ac7c2706cf7858c7f17700237c291813b17..2090babab8e6df10a03243e9c6df2a0f1eed65ed 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 fc532a0a9c74461928e1a3be5cd1c621eb357db2..710a3a97f58e935bdc79cea40d0a132e86aebcd8 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 237f736431c1ed983a4b7eafecb225d2d31c1487..7cf508fc2e70e1ef2667519ac3ab76e9f20895e4 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 bc48a679e90c30253122995f388559f37a68220d..e0cf9a9ba76ddafb63448a474f7509542bc24b4f 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 7a1218afbaca83ce6a9783044fc5d7623d50fe56..fc0f65f6201df8dadca4656e29d9ec9f6c0adffa 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 461f18e03b37ac88f7ee2447b491b5713fe6969c..1bcc0e73b1ab231807a6c9fa7a2097641df21e03 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 71e2eeaf5fb002420d5dd792bedafccfa0a568b5..0e91d4c09c5c52e416cad87e7961971584c7a9c6 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 6276f703ea67a500d3d70f73f9c717569f720df0..3b1e4084cdcc1c20f955d73428e85d484577d146 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 9c3c2b97f835ad092aecf4e4cf87249020608116..8f74d745d06687627b565fe68b28788ccd959255 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 e6a2e10499caeb90efccecfbfb73110b9ed67576..2da27da8db253f87d1a2e928d8740d4d39dab8b9 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 64d5711713287650b5d2dcbbe8ded5d5206afde3..50eb9898d625717291b9d15c72521df8af796095 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 00c05888a9140b1ca2a8b0608948509491fc6e32..ae6f25b01eba3f990f7c3dc3acef71bd45da465c 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 d588f8a9feb3612f4905f78844788a2680dd57e6..f0e67260aa103dd9b60925bb7ac1d609ff5e2f84 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 078915aa3fc07c0db8c53feb0aa7f344550a8f19..2d0ea1ebc83203e67fd5de0bfe5f32ad26a77562 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 0c0ca531fe48b1f7d131e85203f22a5622f68abb..31c618e4b16b1e28e684c901557418dfb072c579 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 073f38724bfba812c3aa5c4a0c493cb00736b7c2..4b9964afb8bb47902b793a06fed96419213b459d 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 ce8f746f4ddc2c1b7f7eee8109ba701a87f0b571..99f61b775678ea347194ef78e62a7064f9581ac3 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 7b54d42077ef118e2eac6e56d7c47425389b8605..b753dd71c0ee363d862460c2f6c79d93fd81fd4c 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 c2b230d89bd5fe70063f6e4cb698bd6deca488ee..683f4a6f0139a3b608b75727ec49f1f8c45fed78 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 9a3f7af3b6abd408319a66b43de751ce0865e853..ded463063b3a9691a843f80a2e0650962171bc63 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 4c775392b83f6d389d7655caf963ecb4df78ec6c..92acc3be8faacbcf114eb31cabfb752b3a7ada60 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 b7dcce83bc7f4968ad6bf450370ca8da7bd7a614..29c92a99dd3353b4a58bb6b12d0706a55d87e961 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 7359e0ee6bd35c093e482607117f30c7c7be23c8..842902379ca74e2e4d25f15bca05e57a8ac3c47f 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 1de0705a4ced8b78c21c201913203b64eb6686a6..52700e2d405e1df5277169f8da3e8dc1885cd2c9 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 36c4e34efd0bf2fedb998731e7335998af98a21a..3a2e8c62004c36b97a564a53105a5160f6bc7eaa 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 1eec456e267427d7a22545c63eeae82b5c5bc68b..8f852cdf7dc63729f7d0ab326d50dfaadd0fb335 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 8893dc35c730c57380394696bc4b0147266224dc..5b497a1e61026f9b3321c3ac78972f50c331c01f 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 12eea7e26b79272a41fabd5a9daa7282fcf77662..f739354a1c573c1ccd79627a1e4e3aa197b0ac23 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 ff055e2b02361142a951a2c5bbb39bba8a8fa4ba..c25033f9ee1e2270b977e14eafbb80efe7a1b0fa 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 359ac18d11f00bf4a06926f72a2df27257ae6be8..eda30fa312bfe93c3828a977568b2f85813267f1 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 52c762196031768542dfdd5f582d11f39dff073f..8c72318b8f5c9affffd8659e462dc6c5be902661 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 2b6f6ab4d84e8926bffe3cda3185a79ed9167773..e48c3e4460c006fe31c973e291c150468726fa7a 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 c28e608dc44735fb98f590b9c10457a83291a45d..2ebc81a0691d69d77c6a35cf3e77550e63aad4e1 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 bd08b8ebaf647f1194b5a566d309476e000c0631..964f361dac895e724c6ee9cc80f70d0d17150643 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 6867ef29a2c2adc1f0e8296d4abd96d7cab7e645..a0b6ab27e8af868d802e24ea2912b5132fddee2e 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 cfc26259d2fa85cd80710eb61972483681525f6b..bb0129b21b13224e77e29f286c1bb6f14fb412df 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 35b36e8d0a923b640a581fc3b0b475141b787651..cfad16b771d3f75ecdd0dcb7cf457993bb18c550 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 d51d28309ed4cc1628fb8831e0c973e28d20418f..e86551c727303eaf3006619692027d179ac86f60 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 0ebc341e82be498b34fb4adf52719cba3a6f4753..02d9204279527fca5ad2f136b695f783890d43c3 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 d0493c49d94154953d4cf1c81e21420f1983f363..82266ed7949d44f42114ba28758a6740460b4e8a 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