From 7c111a081926b4b59be2dc2b9fc4850a7b6f1ac5 Mon Sep 17 00:00:00 2001 From: Pei Yang Date: Tue, 4 Aug 2020 10:03:50 +0800 Subject: [PATCH] add trt int8 support for elementwise_mul and scale (#25785) --- paddle/fluid/inference/tensorrt/op_teller.cc | 5 +++- .../slim/quantization/quantization_pass.py | 25 ++++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/paddle/fluid/inference/tensorrt/op_teller.cc b/paddle/fluid/inference/tensorrt/op_teller.cc index b12b3a2c8a..2462ad7d92 100644 --- a/paddle/fluid/inference/tensorrt/op_teller.cc +++ b/paddle/fluid/inference/tensorrt/op_teller.cc @@ -54,7 +54,10 @@ struct SimpleOpTypeSetTeller : public Teller { "leaky_relu", "fc", "relu6", - "concat"}; + "concat", + "scale", + "elementwise_mul", + "conv2d_transpose"}; std::unordered_set teller_set{ "mul", "conv2d", diff --git a/python/paddle/fluid/contrib/slim/quantization/quantization_pass.py b/python/paddle/fluid/contrib/slim/quantization/quantization_pass.py index c1aaa896e9..d4b9f9d8f3 100644 --- a/python/paddle/fluid/contrib/slim/quantization/quantization_pass.py +++ b/python/paddle/fluid/contrib/slim/quantization/quantization_pass.py @@ -46,9 +46,26 @@ _fake_quant_dequant_op_list = [ ] _out_scale_op_list = [ - "conv2d", "depthwise_conv2d", "mul", "matmul", "relu", "leaky_relu", - "relu6", "sigmoid", "tanh", "prelu", "swish", "softmax", "batch_norm", - "elementwise_add", "pool2d", "reshape2", "transpose2", "concat" + "conv2d", + "depthwise_conv2d", + "mul", + "matmul", + "relu", + "leaky_relu", + "relu6", + "sigmoid", + "tanh", + "prelu", + "swish", + "softmax", + "batch_norm", + "elementwise_add", + "pool2d", + "reshape2", + "transpose2", + "concat", + "elementwise_mul", + "scale", ] # list op real input and output names, to avoid processing input such as AxisTensor. @@ -89,6 +106,8 @@ _op_real_in_out_name = { "dropout": [["X"], ["Out"]], "batch_norm": [["X"], ["Y"]], "sigmoid": [["X"], ["Out"]], + "elementwise_mul": [["X", "Y"], ["Out"]], + "scale": [["X"], ["Out"]], } -- GitLab