[TFLITE]Round op parsing support added (#5022)
authorSamuel <siju.samuel@huawei.com>
Thu, 12 Mar 2020 07:09:45 +0000 (12:39 +0530)
committerGitHub <noreply@github.com>
Thu, 12 Mar 2020 07:09:45 +0000 (15:09 +0800)
python/tvm/relay/frontend/tflite.py
tests/python/frontend/tflite/test_forward.py

index c820713..6faf8d9 100644 (file)
@@ -109,6 +109,7 @@ class OperatorConverter(object):
             'RESHAPE': self.convert_reshape,
             'RESIZE_BILINEAR': self.convert_resize_bilinear,
             'RESIZE_NEAREST_NEIGHBOR': self.convert_resize_nearest_neighbor,
+            'ROUND': self.convert_round,
             'RSQRT': self.convert_rsqrt,
             'SIN': self.convert_sin,
             'SLICE': self.convert_slice,
@@ -676,6 +677,13 @@ class OperatorConverter(object):
                 'TFlite quantized FLOOR operator is not supported yet.')
         return self._convert_unary_elemwise(_op.floor, op)
 
+    def convert_round(self, op):
+        """Convert TFLite ROUND"""
+        if self.is_quantized(op):
+            raise tvm.error.OpNotImplemented(
+                'TFlite quantized ROUND operator is not supported yet.')
+        return self._convert_unary_elemwise(_op.round, op)
+
     def convert_exp(self, op):
         """Convert TFLite EXP"""
         if self.is_quantized(op):
index 78d6c3e..cde8a74 100644 (file)
@@ -694,6 +694,15 @@ def _test_ceil(data):
 def _test_floor(data):
     """ One iteration of floor """
     return _test_unary_elemwise(math_ops.floor, data)
+
+#######################################################################
+# Round
+# -----
+
+def _test_round(data):
+    """ One iteration of round """
+    return _test_unary_elemwise(math_ops.round, data)
+
 #######################################################################
 # Exp
 # ---
@@ -787,6 +796,7 @@ def test_all_unary_elemwise():
     if package_version.parse(tf.VERSION) >= package_version.parse('1.14.0'):
         _test_forward_unary_elemwise(_test_ceil)
         _test_forward_unary_elemwise(_test_cos)
+        _test_forward_unary_elemwise(_test_round)
         _test_forward_unary_elemwise(_test_tan)
         _test_forward_unary_elemwise(_test_elu)