aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorerik.andersson@arm.com <erik.andersson@arm.com>2021-10-28 14:08:52 +0200
committererik.andersson@arm.com <erik.andersson@arm.com>2021-10-29 13:29:16 +0200
commitba2555e9fe9a93a308cc4e50f6a8a160571cb563 (patch)
treeb0ca8dd14103a4fd7aa9248ddab364986e0ad92e
parent0af0d383925968626a7c37b084ad806742511e79 (diff)
downloadethos-u-vela-ba2555e9fe9a93a308cc4e50f6a8a160571cb563.tar.gz
MLBEDSW-4925: Fix resize bilinear attribute check
Previously we did not check if half_pixel_centers was set. Since we do not support it, these cases should not run on the NPU. Signed-off-by: erik.andersson@arm.com <erik.andersson@arm.com> Change-Id: I9d2675f760424d5cfb67e5d581dd1861ad165b85
-rw-r--r--ethosu/vela/test/test_tflite_supported_operators.py7
-rw-r--r--ethosu/vela/tflite_supported_operators.py9
2 files changed, 16 insertions, 0 deletions
diff --git a/ethosu/vela/test/test_tflite_supported_operators.py b/ethosu/vela/test/test_tflite_supported_operators.py
index af5dc17..e3db791 100644
--- a/ethosu/vela/test/test_tflite_supported_operators.py
+++ b/ethosu/vela/test/test_tflite_supported_operators.py
@@ -327,6 +327,13 @@ def test_constraint_resize():
assert not support.is_operator_supported(op)
+def test_constraint_bilinear_resize_attrs():
+ op = testutil.create_op_with_quant_tensors(Op.ResizeBilinear, [1, 1, 1, 8], [1, 8, 8, 8])
+ assert support.is_operator_supported(op)
+ op.attrs["half_pixel_centers"] = True
+ assert not support.is_operator_supported(op)
+
+
def test_constraint_concat_pass():
# A working concat
op = testutil.create_op_with_quant_tensors(Op.Concat, [1, 1, 1, 4], [1, 1, 1, 8])
diff --git a/ethosu/vela/tflite_supported_operators.py b/ethosu/vela/tflite_supported_operators.py
index d590054..a3c0dd8 100644
--- a/ethosu/vela/tflite_supported_operators.py
+++ b/ethosu/vela/tflite_supported_operators.py
@@ -162,6 +162,7 @@ class TFLiteSupportedOperators:
# Resizing specific checks:
for op_type in TFLiteSupportedOperators.resizing_ops:
self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_resize)
+ self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_bilinear_resize_attrs)
# Vector Product specific checks:
for op_type in TFLiteSupportedOperators.fc_vector_products:
@@ -530,6 +531,14 @@ class TFLiteSupportedOperators:
return valid, f"Op has ifm_shape={ifm_shape}, ofm_shape={ofm_shape} and align_corners={align_corners}"
@staticmethod
+ def constraint_bilinear_resize_attrs(op):
+ "half_pixel_centers are not supported"
+ valid = True
+ if op.attrs.get("half_pixel_centers"):
+ valid = False
+ return valid, f"Op has half_pixel_centers set to {not valid}."
+
+ @staticmethod
def constraint_pad_shape(op):
"The padding tensor must have the shape [3,2] or [4,2]"
valid = op.inputs[1].shape in ([3, 2], [4, 2])