aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Alfven <johan.alfven@arm.com>2023-11-15 10:11:31 +0100
committerJohan Alfven <johan.alfven@arm.com>2023-11-15 13:21:39 +0100
commitf49b6e250165e5f0f41befb0d9984ddafe39c41e (patch)
treefc41dbedd707a17b62897819d5322da32970719d
parentf418e832ffd5a10f549aa07a0c9c59406a374ffe (diff)
downloadethos-u-vela-f49b6e250165e5f0f41befb0d9984ddafe39c41e.tar.gz
MLBEDSW-8326: MLCE: Update constraint message for AVERAGE_POOL_2D
- Added missing constraint message for stride height by adding the constraint_stride_width_no_upper_limit to AVERAGE_POOL_2D Change-Id: Ib716fb19e44cb8735b52270b557998d4cbf5cb1c Signed-off-by: Johan Alfven <johan.alfven@arm.com>
-rw-r--r--SUPPORTED_OPS.md5
-rw-r--r--ethosu/vela/tflite_supported_operators.py1
2 files changed, 6 insertions, 0 deletions
diff --git a/SUPPORTED_OPS.md b/SUPPORTED_OPS.md
index fd5e478..665cb30 100644
--- a/SUPPORTED_OPS.md
+++ b/SUPPORTED_OPS.md
@@ -136,6 +136,11 @@ This is a list of constraints that the AVERAGE_POOL_2D operator must satisfy in
- Stride values for both width and height must be integer types
- IFM and OFM data types must match
- Kernel filter values for both width and height must be integer types
+- Strides must fulfil the following criteria:
+ - Stride h must be between 1 and 3 when ofm height is greater than 1
+ - Stride w must be between 1 and 3 when ofm height is greater than 1 or
+ stride w must be divisible by 2 or 3 and ifm width must be divisible
+ by stride_w/2 or stride_w/3
- Stride width must be greater than or equal to 1.
For stride width greater than 3, valid padding needs to be used.
- Kernel filter values for both width and height must be in the range [1, 8]
diff --git a/ethosu/vela/tflite_supported_operators.py b/ethosu/vela/tflite_supported_operators.py
index 4500391..e5686f4 100644
--- a/ethosu/vela/tflite_supported_operators.py
+++ b/ethosu/vela/tflite_supported_operators.py
@@ -254,6 +254,7 @@ class TFLiteSupportedOperators:
self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_stride_range)
# AVG pooling specific checks:
for op_type in TFLiteSupportedOperators.avg_pooling_ops:
+ self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_stride_width_no_upper_limit)
self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_stride_range_no_padding)
self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_filter_range)
self.specific_constraints[op_type].append(TFLiteSupportedOperators.constraint_filter_height_range_valid_pad)