From affe8ef2375ad8c46412db7699ccd77fd92486df Mon Sep 17 00:00:00 2001 From: Ina_Dobreva Date: Fri, 31 Jan 2020 10:23:19 +0000 Subject: [PATCH] [Frontend][TFLite] Fix quantized pad value for convolution * zero padding can't be done directly if the model is quantized since pad=0 will have different meaning in uint8 space --- python/tvm/relay/frontend/tflite.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/tvm/relay/frontend/tflite.py b/python/tvm/relay/frontend/tflite.py index 791c056c4a3d..a45b1d84f386 100644 --- a/python/tvm/relay/frontend/tflite.py +++ b/python/tvm/relay/frontend/tflite.py @@ -1124,10 +1124,14 @@ def convert_conv(self, op, conv_type): pad_left, pad_right = get_pad_value(input_w, dilated_kernel_w, stride_w) do_pad = not (pad_top == 0 and pad_bottom == 0 and pad_left == 0 and pad_right == 0) if do_pad: + pad_value = 0 + if input_tensor.qnn_params: + pad_value = get_scalar_from_constant(input_tensor.qnn_params['zero_point']) in_expr = _op.nn.pad(data=in_expr, pad_width=((0, 0), (pad_top, pad_bottom), (pad_left, pad_right), - (0, 0))) + (0, 0)), pad_value=float(pad_value)) + else: raise tvm.error.OpAttributeUnImplemented( 'Padding format {} is not supported for operator Conv.'.format(padding))