Skip to content

Commit ea62750

Browse files
authored
[OpenVINO backend] Support numpy.deg2rad (#21524)
* feat: deg2rad for openvino backend * feat: included tests for deg2rad * fix: replaced pi with np.pi for numerical stability
1 parent 1d647c3 commit ea62750

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

keras/src/backend/openvino/excluded_concrete_tests.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ NumpyDtypeTest::test_correlate
2222
NumpyDtypeTest::test_cross
2323
NumpyDtypeTest::test_cumprod
2424
NumpyDtypeTest::test_cumsum_bool
25-
NumpyDtypeTest::test_deg2rad
2625
NumpyDtypeTest::test_diag
2726
NumpyDtypeTest::test_digitize
2827
NumpyDtypeTest::test_einsum
@@ -86,7 +85,6 @@ NumpyOneInputOpsCorrectnessTest::test_conj
8685
NumpyOneInputOpsCorrectnessTest::test_corrcoef
8786
NumpyOneInputOpsCorrectnessTest::test_correlate
8887
NumpyOneInputOpsCorrectnessTest::test_cumprod
89-
NumpyOneInputOpsCorrectnessTest::test_deg2rad
9088
NumpyOneInputOpsCorrectnessTest::test_diag
9189
NumpyOneInputOpsCorrectnessTest::test_diagonal
9290
NumpyOneInputOpsCorrectnessTest::test_exp2
@@ -154,14 +152,12 @@ NumpyOneInputOpsDynamicShapeTest::test_bartlett
154152
NumpyOneInputOpsDynamicShapeTest::test_blackman
155153
NumpyOneInputOpsDynamicShapeTest::test_cbrt
156154
NumpyOneInputOpsDynamicShapeTest::test_corrcoef
157-
NumpyOneInputOpsDynamicShapeTest::test_deg2rad
158155
NumpyOneInputOpsDynamicShapeTest::test_hamming
159156
NumpyOneInputOpsDynamicShapeTest::test_hanning
160157
NumpyOneInputOpsDynamicShapeTest::test_isneginf
161158
NumpyOneInputOpsDynamicShapeTest::test_kaiser
162159
NumpyOneInputOpsStaticShapeTest::test_angle
163160
NumpyOneInputOpsStaticShapeTest::test_cbrt
164-
NumpyOneInputOpsStaticShapeTest::test_deg2rad
165161
NumpyOneInputOpsStaticShapeTest::test_isneginf
166162
NumpyTwoInputOpsDynamicShapeTest::test_heaviside
167163
NumpyTwoInputOpsDynamicShapeTest::test_isin

keras/src/backend/openvino/numpy.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -653,9 +653,24 @@ def cumsum(x, axis=None, dtype=None):
653653

654654

655655
def deg2rad(x):
656-
raise NotImplementedError(
657-
"`deg2rad` is not supported with openvino backend"
658-
)
656+
x = get_ov_output(x)
657+
x_type = x.get_element_type()
658+
pi_over_180 = np.pi / 180.0
659+
660+
if x_type == Type.i64:
661+
output_type = Type.f64
662+
elif x_type.is_integral():
663+
output_type = OPENVINO_DTYPES[config.floatx()]
664+
else:
665+
output_type = x_type
666+
667+
if x_type != output_type:
668+
x = ov_opset.convert(x, output_type)
669+
670+
const_pi_over_180 = ov_opset.constant(pi_over_180, output_type).output(0)
671+
result = ov_opset.multiply(x, const_pi_over_180).output(0)
672+
673+
return OpenVINOKerasTensor(result)
659674

660675

661676
def diag(x, k=0):

0 commit comments

Comments
 (0)