Skip to content

Commit

Permalink
[Relay][Frontend][TFlite] Add add parser support for relational ops
Browse files Browse the repository at this point in the history
Add support for: greater_equal, less, less_equal, equal, not_equal
Add tests for the elemwise relational ops
  • Loading branch information
inadob committed Jan 20, 2020
1 parent ee0af84 commit cd42c14
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 0 deletions.
35 changes: 35 additions & 0 deletions python/tvm/relay/frontend/tflite.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ def __init__(self, model, subgraph, exp_tab):
'MAXIMUM': self.convert_maximum,
'MINIMUM': self.convert_minimum,
'GREATER': self.convert_greater,
'GREATER_EQUAL': self.convert_greater_equal,
'LESS': self.convert_less,
'LESS_EQUAL': self.convert_less_equal,
'EQUAL': self.convert_equal,
'NOT_EQUAL': self.convert_not_equal,
'ZEROS_LIKE': self.convert_zeros_like,
'REDUCE_MIN': self._convert_reduce_min,
'REDUCE_MAX': self._convert_reduce_max,
Expand Down Expand Up @@ -747,6 +752,36 @@ def convert_squared_difference(self, op):
out = _op.power(difference, relay.const(2, exp_type))
return out

def convert_greater_equal(self, op):
if self.is_quantized(op):
raise tvm.error.OpNotImplemented(
'TFlite quantized GREATER_EQUAL operator is not supported yet.')
return self._convert_elemwise(_op.greater_equal, op)

def convert_less(self, op):
if self.is_quantized(op):
raise tvm.error.OpNotImplemented(
'TFlite quantized LESS operator is not supported yet.')
return self._convert_elemwise(_op.less, op)

def convert_less_equal(self, op):
if self.is_quantized(op):
raise tvm.error.OpNotImplemented(
'TFlite quantized LESS_EQUAL operator is not supported yet.')
return self._convert_elemwise(_op.less_equal, op)

def convert_equal(self, op):
if self.is_quantized(op):
raise tvm.error.OpNotImplemented(
'TFlite quantized EQUAL operator is not supported yet.')
return self._convert_elemwise(_op.equal, op)

def convert_not_equal(self, op):
if self.is_quantized(op):
raise tvm.error.OpNotImplemented(
'TFlite quantized NOT_EQUAL operator is not supported yet.')
return self._convert_elemwise(_op.not_equal, op)

def convert_zeros_like(self, op):
"""Convert TFLite ZEROS LIKE"""
try:
Expand Down
41 changes: 41 additions & 0 deletions tests/python/frontend/tflite/test_forward.py
Original file line number Diff line number Diff line change
Expand Up @@ -863,6 +863,42 @@ def _test_minimum(data):
def _test_greater(data):
""" One iteration of greater """
return _test_elemwise(math_ops.greater, data)
#######################################################################
# Greater_equal
# -------------

def _test_greater_equal(data):
""" One iteration of greater_equal """
return _test_elemwise(math_ops.greater_equal, data)
#######################################################################
# Less
# ----

def _test_less(data):
""" One iteration of less """
return _test_elemwise(math_ops.less, data)
#######################################################################
# Less_equal
# ----------

def _test_less_equal(data):
""" One iteration of less_equal """
return _test_elemwise(math_ops.less_equal, data)
#######################################################################
# Equal
# -----

def _test_equal(data):
""" One iteration of equal """
return _test_elemwise(math_ops.equal, data)
#######################################################################
# Not_equal
# ---------

def _test_not_equal(data):
""" One iteration of not_equal"""
return _test_elemwise(math_ops.not_equal, data)
#######################################################################

#######################################################################
# Squared_difference
Expand Down Expand Up @@ -915,6 +951,11 @@ def test_all_elemwise():
_test_forward_elemwise(_test_minimum)
_test_forward_elemwise(_test_greater)
_test_forward_elemwise(_test_squared_difference)
_test_forward_elemwise(_test_greater_equal)
_test_forward_elemwise(_test_less)
_test_forward_elemwise(_test_less_equal)
_test_forward_elemwise(_test_equal)
_test_forward_elemwise(_test_not_equal)

#######################################################################
# Zeros like
Expand Down

0 comments on commit cd42c14

Please sign in to comment.