From 8367c720f76f1cae3885abec8b42950fed743e1b Mon Sep 17 00:00:00 2001 From: 11happy Date: Wed, 16 Apr 2025 21:37:51 +0530 Subject: [PATCH 1/2] feat: support numpy.ndim Signed-off-by: 11happy --- keras/src/backend/openvino/excluded_concrete_tests.txt | 1 - keras/src/backend/openvino/numpy.py | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/keras/src/backend/openvino/excluded_concrete_tests.txt b/keras/src/backend/openvino/excluded_concrete_tests.txt index c2ecf0371599..a7fec75c875e 100644 --- a/keras/src/backend/openvino/excluded_concrete_tests.txt +++ b/keras/src/backend/openvino/excluded_concrete_tests.txt @@ -98,7 +98,6 @@ NumpyOneInputOpsCorrectnessTest::test_meshgrid NumpyOneInputOpsCorrectnessTest::test_min NumpyOneInputOpsCorrectnessTest::test_moveaxis NumpyOneInputOpsCorrectnessTest::test_nan_to_num -NumpyOneInputOpsCorrectnessTest::test_ndim NumpyOneInputOpsCorrectnessTest::test_nonzero NumpyOneInputOpsCorrectnessTest::test_pad_float16_constant_2 NumpyOneInputOpsCorrectnessTest::test_pad_float32_constant_2 diff --git a/keras/src/backend/openvino/numpy.py b/keras/src/backend/openvino/numpy.py index f1a998b8e939..68ee7965350c 100644 --- a/keras/src/backend/openvino/numpy.py +++ b/keras/src/backend/openvino/numpy.py @@ -1036,7 +1036,10 @@ def nan_to_num(x, nan=0.0, posinf=None, neginf=None): def ndim(x): - raise NotImplementedError("`ndim` is not supported with openvino backend") + x = get_ov_output(x) + x_shape = x.get_partial_shape() + x_dim = x_shape.rank.get_length() + return x_dim def nonzero(x): From d8ef032413c2a77aa0ce19b0993cb0dfc8e69864 Mon Sep 17 00:00:00 2001 From: 11happy Date: Wed, 16 Apr 2025 23:06:06 +0530 Subject: [PATCH 2/2] use shapeof shapeof method Signed-off-by: 11happy --- keras/src/backend/openvino/numpy.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keras/src/backend/openvino/numpy.py b/keras/src/backend/openvino/numpy.py index 68ee7965350c..f5c88fbff63b 100644 --- a/keras/src/backend/openvino/numpy.py +++ b/keras/src/backend/openvino/numpy.py @@ -1037,8 +1037,8 @@ def nan_to_num(x, nan=0.0, posinf=None, neginf=None): def ndim(x): x = get_ov_output(x) - x_shape = x.get_partial_shape() - x_dim = x_shape.rank.get_length() + x_shape = ov_opset.shape_of(x).output(0) + x_dim = ov_opset.shape_of(x_shape, "i64") return x_dim