Skip to content

Commit c6187c1

Browse files
[OpenVINO Backend] modify ops.stack to support tuples (#21297)
1 parent c2b1993 commit c6187c1

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

keras/src/backend/openvino/excluded_concrete_tests.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ NumpyDtypeTest::test_signbit
5050
NumpyDtypeTest::test_sort
5151
NumpyDtypeTest::test_split
5252
NumpyDtypeTest::test_sqrt
53-
NumpyDtypeTest::test_stack_
5453
NumpyDtypeTest::test_std
5554
NumpyDtypeTest::test_subtract
5655
NumpyDtypeTest::test_sum

keras/src/backend/openvino/numpy.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,13 +1344,16 @@ def split(x, indices_or_sections, axis=0):
13441344

13451345

13461346
def stack(x, axis=0):
1347-
assert isinstance(x, list), "`stack` is supported only for `x` list"
1348-
elems = []
1347+
if isinstance(x, tuple):
1348+
x = list(x)
1349+
assert isinstance(x, list), "`stack` supports only `x` as list or tuple"
1350+
elems = [get_ov_output(e) for e in x]
1351+
ref = elems[0]
1352+
for i in range(1, len(elems)):
1353+
ref, elems[i] = _align_operand_types(ref, elems[i], "stack()")
1354+
elems[0] = ref
13491355
const_axis = ov_opset.constant(axis, Type.i32).output(0)
1350-
for elem in x:
1351-
elem = get_ov_output(elem)
1352-
elem = ov_opset.unsqueeze(elem, const_axis).output(0)
1353-
elems.append(elem)
1356+
elems = [ov_opset.unsqueeze(e, const_axis).output(0) for e in elems]
13541357
res = ov_opset.concat(elems, axis).output(0)
13551358
return OpenVINOKerasTensor(res)
13561359

0 commit comments

Comments
 (0)