keras-team/keras · error · ValueError

diag supports only 1D or 2D tensors

Error message

diag supports only 1D or 2D tensors

What it means

Error "diag supports only 1D or 2D tensors" thrown in keras-team/keras.

Source

Thrown at keras/src/backend/openvino/numpy.py:1604

    if x_type != output_type:
        x = ov_opset.convert(x, output_type)

    const_180_over_pi = ov_opset.constant(_180_over_pi, output_type).output(0)
    result = ov_opset.multiply(x, const_180_over_pi).output(0)

    return OpenVINOKerasTensor(result)


def diag(x, k=0):
    x = get_ov_output(x)
    rank = x.get_partial_shape().rank.get_length()
    if rank == 1:
        return diagflat(OpenVINOKerasTensor(x), k)
    elif rank == 2:
        return diagonal(OpenVINOKerasTensor(x), offset=k)
    else:
        raise ValueError("diag supports only 1D or 2D tensors")


def diagflat(x, k=0):
    x = get_ov_output(x)

    flatten_shape = ov_opset.constant([-1], dtype=Type.i32).output(0)
    v_flat = ov_opset.reshape(x, flatten_shape, False).output(0)

    v_flat_shape = ov_opset.shape_of(v_flat, Type.i32).output(0)
    zero_node = ov_opset.constant(0, dtype=Type.i32).output(0)
    n = ov_opset.gather(v_flat_shape, zero_node, zero_node).output(0)

    k_val = int(k)
    if k_val < 0:
        abs_k = -k_val
    else:
        abs_k = k_val

View on GitHub (pinned to 7a34a03db6)

When it happens

Trigger: Thrown at keras/src/backend/openvino/numpy.py:1604 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of keras-team/keras@7a34a03db6 (2026-08-25). Data as JSON: /api/errors/8e22f72adf8cb030. Report an issue: GitHub.