Skip to content

Commit

Permalink
[TFLite][Frontend] Support quantized div (#15768)
Browse files Browse the repository at this point in the history
As per #15148, adding support for div.
  • Loading branch information
p3achyjr authored Sep 18, 2023
1 parent 44cc2b9 commit 47826e4
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
4 changes: 1 addition & 3 deletions python/tvm/relay/frontend/tflite.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"""
Expand Down
13 changes: 11 additions & 2 deletions tests/python/frontend/tflite/test_forward.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
)


#######################################################################
Expand Down Expand Up @@ -2825,6 +2832,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),
Expand Down Expand Up @@ -2857,6 +2865,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)
Expand Down

0 comments on commit 47826e4

Please sign in to comment.