Skip to content

Commit

Permalink
added tests for quantized tflite sin operator (#9478)
Browse files Browse the repository at this point in the history
* added tests for quantized tflite sin operator

* removing unnecessary rsqrt code_block

* resolving linting error
  • Loading branch information
onkar-sima-ai authored Nov 14, 2021
1 parent e4904c6 commit 7ea78cc
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 5 deletions.
2 changes: 0 additions & 2 deletions python/tvm/relay/frontend/tflite.py
Original file line number Diff line number Diff line change
Expand Up @@ -1174,8 +1174,6 @@ def convert_log(self, op):

def convert_sin(self, op):
"""Convert TFLite SIN"""
if self.is_quantized(op):
raise tvm.error.OpNotImplemented("TFlite quantized SIN operator is not supported yet.")
return self._convert_unary_elemwise(_op.sin, op)

def convert_tan(self, op):
Expand Down
35 changes: 32 additions & 3 deletions tests/python/frontend/tflite/test_forward.py
Original file line number Diff line number Diff line change
Expand Up @@ -1825,9 +1825,38 @@ def _test_log(data):
# ---


def _test_sin(data):
def _test_sin(data, quantized=False):
"""One iteration of sin"""
return _test_unary_elemwise(math_ops.sin, data)
with tf.Graph().as_default():
in_data = array_ops.placeholder(shape=data.shape, dtype="float32", name="in_0")

if quantized:
inq_data = tf.quantization.fake_quant_with_min_max_args(
in_data, min=1, max=6, name="inq_0"
)
input_range = {"inq_0": (1, 6)}
out = math_ops.sin(inq_data)
out = tf.quantization.fake_quant_with_min_max_args(out, min=1, max=6, name="out")
compare_tflite_with_tvm(
data,
"inq_0:0",
[inq_data],
[out],
quantized=True,
input_range=input_range,
experimental_new_converter=True,
)
else:
out = math_ops.sin(in_data)
compare_tflite_with_tvm(data, "in_0:0", [in_data], [out])


def test_forward_sin():
"""SIN"""
_test_sin(np.arange(-2.0, 4.0, dtype=np.float32), quantized=False)
_test_sin(np.arange(-2.0, 4.0, dtype=np.float32).reshape((2, 1, 3)), quantized=False)
_test_sin(np.arange(1, 240, 40, dtype=np.uint8), quantized=True)
_test_sin(np.arange(1, 240, 40, dtype=np.uint8).reshape((2, 1, 3)), quantized=True)


#######################################################################
Expand Down Expand Up @@ -1882,7 +1911,6 @@ def test_all_unary_elemwise():
_test_forward_unary_elemwise(_test_floor)
_test_forward_unary_elemwise(_test_exp)
_test_forward_unary_elemwise(_test_log)
_test_forward_unary_elemwise(_test_sin)
_test_forward_unary_elemwise(_test_square)
# ceil and cos come with TFLite 1.14.0.post1 fbs schema
if package_version.parse(tf.VERSION) >= package_version.parse("1.14.0"):
Expand Down Expand Up @@ -4783,6 +4811,7 @@ def test_prevent_tensorflow_dynamic_range():
test_forward_tanh()
test_forward_rsqrt()
test_forward_neg()
test_forward_sin()
test_forward_abs()
test_forward_sqrt()
test_forward_relu()
Expand Down

0 comments on commit 7ea78cc

Please sign in to comment.