keras-team/keras · error · ValueError
Logits `y_pred` are expected to be a tensor of shape `(batch
Error message
Logits `y_pred` are expected to be a tensor of shape `(batch_size, max_length, num_classes)`. Received: y_pred.shape={ops.shape(y_pred)} What it means
Error "Logits `y_pred` are expected to be a tensor of shape `(batch_size, max_length, num_classes)`. Received: y_pred.shape={ops.shape(y_pred)}" thrown in keras-team/keras.
Source
Thrown at keras/src/losses/losses.py:2547
def ctc(y_true, y_pred):
"""CTC (Connectionist Temporal Classification) loss.
Args:
y_true: A tensor of shape `(batch_size, max_length)` containing
the true labels in integer format. `0` always represents
the blank/mask index and should not be used for classes.
y_pred: A tensor of shape `(batch_size, max_length, num_classes)`
containing logits (the output of your model).
They should *not* be normalized via softmax.
"""
if len(ops.shape(y_true)) != 2:
raise ValueError(
"Targets `y_true` are expected to be a tensor of shape "
"`(batch_size, max_length)` in integer format. "
f"Received: y_true.shape={ops.shape(y_true)}"
)
if len(ops.shape(y_pred)) != 3:
raise ValueError(
"Logits `y_pred` are expected to be a tensor of shape "
"`(batch_size, max_length, num_classes)`. "
f"Received: y_pred.shape={ops.shape(y_pred)}"
)
mask_index = 0
batch_length = ops.shape(y_pred)[0]
input_length = ops.shape(y_pred)[1]
input_length = input_length * ops.ones((batch_length,), dtype="int32")
label_length = ops.cast(
ops.sum(y_true != mask_index, axis=-1), dtype="int32"
)
return ops.ctc_loss(
y_true, y_pred, label_length, input_length, mask_index=mask_index
)
View on GitHub (pinned to 7a34a03db6)
When it happens
Trigger: Thrown at keras/src/losses/losses.py:2547 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/d06e0c52ffe81982.
Report an issue: GitHub.