#38248·openvino

[错误]: CPU 和 GPU 插件忽略 Divide 的 m_pythondiv,对于整数输入:-5 / 2 返回 -2,而不是 -3

作者: anishmehta24创建于 2026年9月18日更新于 2026年9月18日

import numpy as np, openvino as ov from openvino import opset13 as ops from openvino._pyopenvino import NodeFactory def divide(a, b, pythondiv): return NodeFactory("opset13").create("Divide", [a.output(0), b.output(0)], {"auto_broadcast": "numpy", "m_pythondiv": pythondiv}) for dt in (np.int64, np.int32): a = ops.parameter([-1], dt); b = ops.parameter([-1], dt) m = ov.Model([divide(a, b, True), divide(a, b, False)], [a, b]) av = np.array([-5, 5, -5, 5, -7, 7], dt); bv = np.array([2, 2, -2, -2, 3, -3], dt) for dev in ("CPU", "GPU"): r = ov.Core().compile_model(m, dev)([av, bv]) print(dt.name, dev, "pythondiv:", r[0].tolist(), "trunc:", r[1].tolist(), "//:", (av // bv).tolist()) Output: int64 CPU pythondiv: [-2, 2, 2, -2, -2, -2] trunc: [-2, 2, 2, -2, -2, -2] //: [-3, 2, 2, -3, -3, -3] int64 GPU pythondiv: [-2, 2, 2, -2, -2, -2] trunc: [-2, 2, 2, -2, -2, -2] //: [-3, 2, 2, -3, -3, -3] int32 CPU pythondiv: [-2, 2, 2, -2, -2, -2] trunc: [-2, 2, 2, -2, -2, -2] //: [-3, 2, 2, -3, -3, -3] int32 GPU pythondiv: [-2, 2, 2, -2, -2, -2] trunc: [-2, 2, 2, -2, -2, -2] //: [-3, 2, 2, -3, -3, -3]

内容来源: openvinotoolkit/openvino