aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Hall <tim.hall@arm.com>2023-07-06 11:42:02 +0100
committerTim Hall <tim.hall@arm.com>2023-07-06 12:49:00 +0100
commit762d3acb93c597b5299864f9b3ee551107978ee2 (patch)
tree94eee7b497973c31c73514407084fefaf51515bd
parent2d54e5cd9f86dcabd9f419f196245af4479abcd5 (diff)
downloadethos-u-vela-762d3acb93c597b5299864f9b3ee551107978ee2.tar.gz
MLBEDSW-7832: test_tflite_model_semantic converting array to scalar
- The problem is that the axis value can be either a scalar or an array containing a single element - The solution is to check the length of the shape because the size attribute returns the same value for both cases - This did not show up before because pytest warnings were not being treated as errors - Removed pre-commit pytest option that caused tests to be searched for from the root directory - Updated pyproject.toml pytest options to explicitly specify the test directories, and to treat warnings as errors Change-Id: I037054768e5c34f253b6062eadba1c3419ff65e4
-rw-r--r--.pre-commit-config.yaml2
-rw-r--r--ethosu/vela/tflite_model_semantic.py6
-rw-r--r--pyproject.toml9
3 files changed, 13 insertions, 4 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 4f60e96..29f96d5 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -55,7 +55,7 @@ repos:
name: pytest
stages: [commit]
language: system
- entry: pytest -s -v .
+ entry: pytest -s -v
types: [python]
pass_filenames: false
always_run: true
diff --git a/ethosu/vela/tflite_model_semantic.py b/ethosu/vela/tflite_model_semantic.py
index 24c0794..444c04a 100644
--- a/ethosu/vela/tflite_model_semantic.py
+++ b/ethosu/vela/tflite_model_semantic.py
@@ -436,7 +436,8 @@ class TFLiteSemantic:
axis_tens = op.inputs[0]
input_tens = op.inputs[1]
dims = len(input_tens.shape)
- axis = int(axis_tens.values)
+ # handle axis being a scalar or 1-D array
+ axis = int(axis_tens.values) if len(axis_tens.values.shape) == 0 else int(axis_tens.values[0])
axis += dims if axis < 0 else 0
valid = 0 <= axis < dims
return valid, f"Op has ifm_dimensions={dims} and axis value is: {axis}"
@@ -448,7 +449,8 @@ class TFLiteSemantic:
axis_tens = op.inputs[0]
input_tens = op.inputs[1]
dims = len(input_tens.shape)
- axis = int(axis_tens.values)
+ # handle axis being a scalar or 1-D array
+ axis = int(axis_tens.values) if len(axis_tens.values.shape) == 0 else int(axis_tens.values[0])
axis += dims if axis < 0 else 0
valid = input_tens.shape[axis] % num_splits == 0
return valid, f"Op has ifm shape={input_tens.shape} axis={axis} num_splits={num_splits}"
diff --git a/pyproject.toml b/pyproject.toml
index 2127d1a..f2c5d60 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -62,4 +62,11 @@ requires = [
"numpy; python_version>'3.7'",
"setuptools_scm[toml]~=7.1.0"
]
-build-backend = "setuptools.build_meta" \ No newline at end of file
+build-backend = "setuptools.build_meta"
+
+[tool.pytest.ini_options]
+minversion = "6.0"
+addopts = ["-ra", "--showlocals", "--strict-markers", "--strict-config"]
+xfail_strict = true
+filterwarnings = ["error"]
+testpaths = ["ethosu/mlw_codec/test", "ethosu/vela/test"] \ No newline at end of file