keras-team/keras · error · AttributeError

Layer must be stateful.

Error message

Layer must be stateful.

What it means

Error "Layer must be stateful." thrown in keras-team/keras.

Source

Thrown at keras/src/layers/rnn/bidirectional.py:487

                "Unrecognized value for `merge_mode`. "
                f"Received: {self.merge_mode}. "
                'Expected one of {"concat", "sum", "ave", "mul"}.'
            )

        if self.return_state:
            states = tuple(fwd_states + bwd_states)
            if self.merge_mode is None:
                return output + states
            return (output,) + states
        return output

    def reset_states(self):
        # Compatibility alias.
        self.reset_state()

    def reset_state(self):
        if not self.stateful:
            raise AttributeError("Layer must be stateful.")
        self.forward_layer.reset_state()
        self.backward_layer.reset_state()

    @property
    def states(self):
        if self.forward_layer.states and self.backward_layer.states:
            return tuple(self.forward_layer.states + self.backward_layer.states)
        return None

    def build(self, sequences_shape, initial_state_shape=None):
        if not self.forward_layer.built:
            self.forward_layer.build(sequences_shape)
        if not self.backward_layer.built:
            self.backward_layer.build(sequences_shape)

    def compute_mask(self, _, mask):
        if isinstance(mask, list):
            mask = mask[0]

View on GitHub (pinned to 7a34a03db6)

When it happens

Trigger: Thrown at keras/src/layers/rnn/bidirectional.py:487 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/f76184e77baa6f50. Report an issue: GitHub.