From 2d924ac77f1c2bc321014818ff1a2d5604bb4318 Mon Sep 17 00:00:00 2001 From: p3achyjr Date: Tue, 12 Sep 2023 19:35:02 +0000 Subject: [PATCH] [TFLite][Frontend] Support quantized div --- python/tvm/relay/frontend/tflite.py | 4 +--- tests/python/frontend/tflite/test_forward.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/python/tvm/relay/frontend/tflite.py b/python/tvm/relay/frontend/tflite.py index b33fd57b10ec..d6675316a5ff 100644 --- a/python/tvm/relay/frontend/tflite.py +++ b/python/tvm/relay/frontend/tflite.py @@ -1429,9 +1429,7 @@ def convert_mul(self, op): def convert_div(self, op): """Convert TFLite DIV""" # Check if the input tensor is quantized, call QNN op - if self.is_quantized(op): - raise tvm.error.OpNotImplemented("TFlite quantized DIV operator is not supported yet.") - return self._convert_elemwise(_op.divide, op) + return self._convert_elemwise(_op.divide, op, self.is_quantized(op)) def convert_pow(self, op): """Convert TFLite POW""" diff --git a/tests/python/frontend/tflite/test_forward.py b/tests/python/frontend/tflite/test_forward.py index 283514a6a3df..e9dbea37f611 100644 --- a/tests/python/frontend/tflite/test_forward.py +++ b/tests/python/frontend/tflite/test_forward.py @@ -2610,9 +2610,16 @@ def _test_mul(data, fused_activation_function=None, quantized=False, qnn_op=None # ------ -def _test_div(data, fused_activation_function=None): +def _test_div(data, fused_activation_function=None, quantized=False, qnn_op=None): """One iteration of divide""" - return _test_elemwise(math_ops.divide, data, fused_activation_function) + return _test_elemwise( + math_ops.divide, + data, + fused_activation_function, + quantized, + qnn_op, + same_qnn_params=True, + ) ####################################################################### @@ -2810,6 +2817,7 @@ def _test_elemwise_qnn_out_range(qnn_op): _test_add: (-150, 150), _test_sub: (-150, 150), _test_mul: (-5e3, 5e3), + _test_div: (-150, 150), _test_maximum: (-112, 111), _test_minimum: (-128, 127), _test_equal: (-150, 150), @@ -2840,6 +2848,7 @@ def test_all_elemwise(): _test_forward_elemwise(_test_div) _test_forward_elemwise(partial(_test_div, fused_activation_function="RELU")) _test_forward_elemwise(partial(_test_div, fused_activation_function="RELU6")) + _test_forward_elemwise_quantized(_test_div) _test_forward_elemwise(_test_pow) _test_forward_elemwise(_test_maximum) _test_forward_elemwise_quantized(_test_maximum)