Skip to content

Commit a69952e

Browse files
authoredMar 24, 2025··
[OpenVINO backend] Support numpy.log10 (#21042)
* [OpenVINO backend] Support numpy.log10 * Address review feedback on log10 implementation * Fix log function and update excluded_concrete_tests.txt
1 parent 895a123 commit a69952e

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed
 

‎keras/src/backend/openvino/excluded_concrete_tests.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ NumpyDtypeTest::test_isfinite
3333
NumpyDtypeTest::test_isinf
3434
NumpyDtypeTest::test_isnan
3535
NumpyDtypeTest::test_linspace
36-
NumpyDtypeTest::test_log10
3736
NumpyDtypeTest::test_log1p
3837
NumpyDtypeTest::test_log
3938
NumpyDtypeTest::test_logspace
@@ -99,7 +98,9 @@ NumpyOneInputOpsCorrectnessTest::test_hstack
9998
NumpyOneInputOpsCorrectnessTest::test_imag
10099
NumpyOneInputOpsCorrectnessTest::test_isfinite
101100
NumpyOneInputOpsCorrectnessTest::test_isinf
102-
NumpyOneInputOpsCorrectnessTest::test_log
101+
NumpyOneInputOpsCorrectnessTest::test_log1p
102+
NumpyOneInputOpsCorrectnessTest::test_log2
103+
NumpyOneInputOpsCorrectnessTest::test_logaddexp
103104
NumpyOneInputOpsCorrectnessTest::test_max
104105
NumpyOneInputOpsCorrectnessTest::test_mean
105106
NumpyOneInputOpsCorrectnessTest::test_median

‎keras/src/backend/openvino/numpy.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -832,11 +832,24 @@ def linspace(
832832

833833
def log(x):
834834
x = get_ov_output(x)
835+
x_type = x.get_element_type()
836+
if x_type.is_integral():
837+
x_type = OPENVINO_DTYPES[config.floatx()]
838+
x = ov_opset.convert(x, x_type)
835839
return OpenVINOKerasTensor(ov_opset.log(x).output(0))
836840

837841

838842
def log10(x):
839-
raise NotImplementedError("`log10` is not supported with openvino backend")
843+
x = get_ov_output(x)
844+
x_type = x.get_element_type()
845+
if x_type.is_integral():
846+
x_type = OPENVINO_DTYPES[config.floatx()]
847+
x = ov_opset.convert(x, x_type)
848+
log_x = ov_opset.log(x).output(0)
849+
const_10 = ov_opset.constant(10, x_type).output(0)
850+
log_10 = ov_opset.log(const_10).output(0)
851+
result = ov_opset.divide(log_x, log_10).output(0)
852+
return OpenVINOKerasTensor(result)
840853

841854

842855
def log1p(x):

0 commit comments

Comments
 (0)
Please sign in to comment.