diff options
author | Alexander Hansson <Alexander.Hansson@arm.com> | 2023-05-31 15:03:03 +0000 |
---|---|---|
committer | Alexander Hansson <Alexander.Hansson@arm.com> | 2023-06-19 17:12:06 +0000 |
commit | 90c34b5948a92d27a882374e16b335597ea7e494 (patch) | |
tree | f910ab7f6cd26e0edba5ffdcf68f4a3a9614bebe /ethosu/vela/test | |
parent | 85b77901b72865cc0071f294bd9177288c0bc4e3 (diff) | |
download | ethos-u-vela-90c34b5948a92d27a882374e16b335597ea7e494.tar.gz |
MLBEDSW-7654: Extend support for Mean where HxW > 4096
* Convert Means with large IFMs to several DeptwiseConv2DBias and Add
operations.
* Update tflite supported operator check with new height and width
constraints.
* Update unit-tests to verify supported operator changes.
* Fix output-diff for 2D IFMs (MLBEDSW-7772)
Signed-off-by: Alexander Hansson <Alexander.Hansson@arm.com>
Change-Id: Ifae6fb1cdac475ae7dac5116c5f13631ff82108a
Diffstat (limited to 'ethosu/vela/test')
-rw-r--r-- | ethosu/vela/test/test_tflite_supported_operators.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/ethosu/vela/test/test_tflite_supported_operators.py b/ethosu/vela/test/test_tflite_supported_operators.py index 6f3553d8..f2ad8586 100644 --- a/ethosu/vela/test/test_tflite_supported_operators.py +++ b/ethosu/vela/test/test_tflite_supported_operators.py @@ -613,9 +613,26 @@ def create_mean(input_shape, output_shape, axis, datatype, attrs): def test_mean_hw_product(): - op = create_mean([1, 64, 64, 16], [1, 16], [1, 2], DataType.uint8, {}) + # max kernel size checks + op = create_mean([1, 4096, 4096, 16], [1, 1, 1, 16], [1, 2], DataType.int8, {}) assert support.is_operator_supported(op) - op = create_mean([1, 65, 64, 16], [1, 1, 1, 16], [1, 2], DataType.int8, {"keep_dims": True}) + op = create_mean([1, 4097, 4096, 16], [1, 1, 1, 16], [1, 2], DataType.int8, {}) + assert not support.is_operator_supported(op) + + op = create_mean([1, 2048, 4096, 16], [1, 1, 1, 16], [1, 2], DataType.uint8, {}) + assert support.is_operator_supported(op) + op = create_mean([1, 2049, 4096, 16], [1, 1, 1, 16], [1, 2], DataType.uint8, {}) + assert not support.is_operator_supported(op) + + op = create_mean([1, 16, 4096, 16], [1, 1, 1, 16], [1, 2], DataType.int16, {}) + assert support.is_operator_supported(op) + op = create_mean([1, 17, 4096, 16], [1, 1, 1, 16], [1, 2], DataType.int16, {}) + assert not support.is_operator_supported(op) + + # h > 4096 is OK but w > 4096 is not + op = create_mean([1, 4097, 10, 16], [1, 1, 1, 16], [1, 2], DataType.uint8, {"keep_dims": True}) + assert support.is_operator_supported(op) + op = create_mean([1, 10, 4097, 16], [1, 1, 1, 16], [1, 2], DataType.int16, {"keep_dims": True}) assert not support.is_operator_supported(op) |