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()

Reply via email to