You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by zh...@apache.org on 2020/03/12 07:11:43 UTC
[incubator-tvm] branch master updated: [TFLITE][FRONTEND]Reduce_any
op parsing support (#4926)
This is an automated email from the ASF dual-hosted git repository.
zhaowu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tvm.git
The following commit(s) were added to refs/heads/master by this push:
new a950536 [TFLITE][FRONTEND]Reduce_any op parsing support (#4926)
a950536 is described below
commit a9505365fc128000ff11cba349147f7eeefcb067
Author: Samuel <si...@huawei.com>
AuthorDate: Thu Mar 12 12:41:37 2020 +0530
[TFLITE][FRONTEND]Reduce_any op parsing support (#4926)
* [TFLITE][FRONTEND]Reduce_any op parsing support
* Testcase check added to run in tf version above 1.14.0 & review comments
* Review comment, checked updated to 1.15
---
python/tvm/relay/frontend/tflite.py | 4 ++++
tests/python/frontend/tflite/test_forward.py | 21 ++++++++++++++++++---
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/python/tvm/relay/frontend/tflite.py b/python/tvm/relay/frontend/tflite.py
index 6faf8d9..b4891c3 100644
--- a/python/tvm/relay/frontend/tflite.py
+++ b/python/tvm/relay/frontend/tflite.py
@@ -102,6 +102,7 @@ class OperatorConverter(object):
'PAD': self.convert_pad,
'POW': self.convert_pow,
'PRELU': self.convert_prelu,
+ 'REDUCE_ANY': self._convert_reduce_any,
'REDUCE_MAX': self._convert_reduce_max,
'REDUCE_MIN': self._convert_reduce_min,
'REDUCE_PROD': self._convert_reduce_prod,
@@ -1088,6 +1089,9 @@ class OperatorConverter(object):
def _convert_reduce_sum(self, op):
return self._convert_reduce(_op.reduce.sum, op)
+ def _convert_reduce_any(self, op):
+ return self._convert_reduce(_op.reduce.any, op)
+
def convert_fully_connected(self, op):
"""Convert TFLite fully connected"""
try:
diff --git a/tests/python/frontend/tflite/test_forward.py b/tests/python/frontend/tflite/test_forward.py
index cde8a74..0d76cf2 100644
--- a/tests/python/frontend/tflite/test_forward.py
+++ b/tests/python/frontend/tflite/test_forward.py
@@ -1154,11 +1154,24 @@ def _test_reduce_sum(data, keep_dims=None):
""" One iteration of reduce_sum """
return _test_reduce(math_ops.reduce_sum, data, keep_dims)
+#######################################################################
+# Reduce_any
+# ----------
+
+def _test_reduce_any(data, keep_dims=None):
+ """ One iteration of reduce_any """
+ return _test_reduce(math_ops.reduce_any, data, keep_dims)
-def _test_forward_reduce(testop):
+def _test_forward_reduce(testop, dtype="float32"):
""" Reduce """
- data0 = [np.random.rand(16, 16, 16, 16).astype("float32"), None]
- data1 = [np.random.rand(16, 16, 16, 16).astype("float32"), np.array([1, 2], dtype=np.int32)]
+ if dtype == 'bool':
+ data0 = [np.random.choice(a=[False, True], size=(16, 16, 16, 16)).astype(dtype),
+ None]
+ data1 = [np.random.choice(a=[False, True], size=(16, 16, 16, 16)).astype(dtype),
+ np.array([1, 2], dtype=np.int32)]
+ else:
+ data0 = [np.random.rand(16, 16, 16, 16).astype(dtype), None]
+ data1 = [np.random.rand(16, 16, 16, 16).astype(dtype), np.array([1, 2], dtype=np.int32)]
testop(data0)
testop(data0, keep_dims=False)
testop(data0, keep_dims=True)
@@ -1179,6 +1192,8 @@ def test_all_reduce():
_test_forward_reduce_quantized(_test_reduce_mean)
_test_forward_reduce(_test_reduce_prod)
_test_forward_reduce(_test_reduce_sum)
+ if package_version.parse(tf.VERSION) >= package_version.parse('1.15.0'):
+ _test_forward_reduce(_test_reduce_any, dtype="bool")
#######################################################################