You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by le...@apache.org on 2023/12/15 10:54:20 UTC
(tvm) branch main updated: [TFLite] Add support for quantized mirror pad (#16243)
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 b3eec91ee6 [TFLite] Add support for quantized mirror pad (#16243)
b3eec91ee6 is described below
commit b3eec91ee6254b40920c40e922cb3c37ac1c06a4
Author: Luke Hutton <lu...@arm.com>
AuthorDate: Fri Dec 15 10:54:14 2023 +0000
[TFLite] Add support for quantized mirror pad (#16243)
Removes the restriction on converting quantized mirror pad in the
front-end and adds tests to support this change.
Change-Id: Id513709b38e6bfdcff2bb35554b6799ef5c5cd52
---
python/tvm/relay/frontend/tflite.py | 6 ------
tests/python/frontend/tflite/test_forward.py | 24 +++++++++++++++++++++++-
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/python/tvm/relay/frontend/tflite.py b/python/tvm/relay/frontend/tflite.py
index 1880887b7e..3648864239 100644
--- a/python/tvm/relay/frontend/tflite.py
+++ b/python/tvm/relay/frontend/tflite.py
@@ -2677,12 +2677,6 @@ class OperatorConverter(object):
except ImportError:
raise ImportError("The tflite package must be installed")
- # the quantized form MirrorPad is not yet implemented in TFLite.
- if self.is_quantized(op):
- raise tvm.error.OpNotImplemented(
- "TFlite quantized MIRROR_PAD operator is not supported yet."
- )
-
input_tensors = self.get_input_tensors(op)
assert len(input_tensors) == 2, "input tensors length should be 2"
diff --git a/tests/python/frontend/tflite/test_forward.py b/tests/python/frontend/tflite/test_forward.py
index e85d370be5..6d1e656221 100644
--- a/tests/python/frontend/tflite/test_forward.py
+++ b/tests/python/frontend/tflite/test_forward.py
@@ -3436,7 +3436,13 @@ def _test_pad(data, mode="CONSTANT", quantized=False):
inq_data[0], ops.convert_to_tensor(data[1], dtype=data[1].dtype), mode=mode
)
compare_tflite_with_tvm(
- [data[0]], ["inq_0:0"], inq_data, [out], quantized=True, input_range=input_range
+ [data[0]],
+ ["inq_0:0"],
+ inq_data,
+ [out],
+ quantized=True,
+ input_range=input_range,
+ experimental_new_converter=True,
)
else:
out = array_ops.pad(
@@ -3506,6 +3512,22 @@ def test_forward_pad():
],
quantized=True,
)
+ _test_pad(
+ [
+ np.arange(0, 256, dtype=np.uint8).reshape((1, 256)),
+ np.array([[1, 1], [2, 2]], dtype=np.int32),
+ ],
+ quantized=True,
+ mode="SYMMETRIC",
+ )
+ _test_pad(
+ [
+ np.arange(0, 256, dtype=np.uint8).reshape((1, 256)),
+ np.array([[0, 0], [2, 2]], dtype=np.int32),
+ ],
+ quantized=True,
+ mode="REFLECT",
+ )
#######################################################################