Skip to content

Commit f450869

Browse files
Run api-gen hook and update API directory
1 parent 1635157 commit f450869

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

keras/src/backend/openvino/numpy.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import numpy as np
22
import openvino.opset14 as ov_opset
33
from openvino import Type
4+
from openvino.runtime import opset13 as ov
45

56
from keras.src.backend import config
67
from keras.src.backend.common import dtypes
@@ -15,13 +16,9 @@
1516
from keras.src.backend.openvino.core import convert_to_tensor
1617
from keras.src.backend.openvino.core import get_ov_output
1718
from keras.src.backend.openvino.core import ov_to_keras_type
18-
import numpy as np
19-
from openvino.runtime import opset13 as ov
20-
2119

2220

2321
def diagonal(x, offset=0, axis1=0, axis2=1):
24-
"""OpenVINO backend decomposition for keras.ops.diagonal."""
2522
x_node = ov.constant(x) # -> ov.Node
2623
offset_const = ov_opset.constant(int(offset), dtype="i64")
2724

@@ -30,15 +27,18 @@ def diagonal(x, offset=0, axis1=0, axis2=1):
3027
rank = ov_opset.shape_of(shape) # scalar i64 (len of shape)
3128
rank_val = ov_opset.squeeze(rank) # [] -> scalar
3229
axis1_node = ov_opset.floor_mod(
33-
ov_opset.add(ov_opset.constant(int(axis1), dtype="i64"), rank_val), rank_val
30+
ov_opset.add(ov_opset.constant(int(axis1), dtype="i64"), rank_val),
31+
rank_val,
3432
)
3533
axis2_node = ov_opset.floor_mod(
36-
ov_opset.add(ov_opset.constant(int(axis2), dtype="i64"), rank_val), rank_val
34+
ov_opset.add(ov_opset.constant(int(axis2), dtype="i64"), rank_val),
35+
rank_val,
3736
)
3837

39-
4038
arange = ov_opset.range(
41-
ov_opset.constant(0, dtype="i64"), rank_val, ov_opset.constant(1, dtype="i64")
39+
ov_opset.constant(0, dtype="i64"),
40+
rank_val,
41+
ov_opset.constant(1, dtype="i64"),
4242
)
4343
mask1 = ov_opset.equal(arange, axis1_node)
4444
mask2 = ov_opset.equal(arange, axis2_node)
@@ -47,7 +47,12 @@ def diagonal(x, offset=0, axis1=0, axis2=1):
4747
ov_opset.non_zero(not12), [1]
4848
) # gather positions != axis1, axis2
4949
perm = ov_opset.concat(
50-
[others, ov_opset.reshape(axis1_node, [1]), ov_opset.reshape(axis2_node, [1])], 0
50+
[
51+
others,
52+
ov_opset.reshape(axis1_node, [1]),
53+
ov_opset.reshape(axis2_node, [1]),
54+
],
55+
0,
5156
)
5257

5358
x_perm = ov_opset.transpose(x_node, perm)
@@ -101,7 +106,12 @@ def diagonal(x, offset=0, axis1=0, axis2=1):
101106
end_mask=[0],
102107
)
103108
target_shape = ov_opset.concat(
104-
[batch_shape, ov_opset.reshape(L, [1]), ov_opset.constant([2], dtype="i64")], 0
109+
[
110+
batch_shape,
111+
ov_opset.reshape(L, [1]),
112+
ov_opset.constant([2], dtype="i64"),
113+
],
114+
0,
105115
)
106116
bcast_idx = ov_opset.broadcast(diag_idx, target_shape)
107117

@@ -111,7 +121,6 @@ def diagonal(x, offset=0, axis1=0, axis2=1):
111121
return OpenVINOKerasTensor(gathered)
112122

113123

114-
115124
def add(x1, x2):
116125
element_type = None
117126
if isinstance(x1, OpenVINOKerasTensor):
@@ -772,7 +781,6 @@ def diag(x, k=0):
772781
raise NotImplementedError("`diag` is not supported with openvino backend")
773782

774783

775-
776784
def diff(a, n=1, axis=-1):
777785
if n == 0:
778786
return OpenVINOKerasTensor(get_ov_output(a))

0 commit comments

Comments
 (0)