This is an automated email from the ASF dual-hosted git repository.
leandron pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new 7ea78cc added tests for quantized tflite sin operator (#9478)
7ea78cc is described below
commit 7ea78cc22b8fbe6b406a17e3dab8781d7b34739c
Author: onkar-sima-ai <[email protected]>
AuthorDate: Sun Nov 14 15:11:49 2021 +0530
added tests for quantized tflite sin operator (#9478)
* added tests for quantized tflite sin operator
* removing unnecessary rsqrt code_block
* resolving linting error
---
python/tvm/relay/frontend/tflite.py | 2 --
tests/python/frontend/tflite/test_forward.py | 35 +++++++++++++++++++++++++---
2 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/python/tvm/relay/frontend/tflite.py
b/python/tvm/relay/frontend/tflite.py
index 05b3041..12beca5 100644
--- a/python/tvm/relay/frontend/tflite.py
+++ b/python/tvm/relay/frontend/tflite.py
@@ -1174,8 +1174,6 @@ class OperatorConverter(object):
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):
diff --git a/tests/python/frontend/tflite/test_forward.py
b/tests/python/frontend/tflite/test_forward.py
index cb9122b..956c71a 100644
--- a/tests/python/frontend/tflite/test_forward.py
+++ b/tests/python/frontend/tflite/test_forward.py
@@ -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)
#######################################################################
@@ -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"):
@@ -4783,6 +4811,7 @@ if __name__ == "__main__":
test_forward_tanh()
test_forward_rsqrt()
test_forward_neg()
+ test_forward_sin()
test_forward_abs()
test_forward_sqrt()
test_forward_relu()