e3933804ee
## Summary Add three TFLite sequence recurrent operators to the Relax frontend, all with coupled input-forget gate (FULL kernel) and float32-only support. - UNIDIRECTIONAL_SEQUENCE_LSTM - BIDIRECTIONAL_SEQUENCE_RNN - BIDIRECTIONAL_SEQUENCE_LSTM From #19519. ## Changes - **UNIDIRECTIONAL_SEQUENCE_LSTM**: same layout as single-step LSTM, unrolls over time and stacks per-step hidden states. Supports time_major, cell_clip, proj_clip, and fused activation. - **BIDIRECTIONAL_SEQUENCE_RNN**: separate fw/bw RNN cells, backward scans in reverse. Supports merge_outputs (concat fw + bw) and split outputs via Tuple. - **BIDIRECTIONAL_SEQUENCE_LSTM**: 48-input operator with fw/bw LSTM cells sharing the same input tensor. States at indices 35-38. - All converters propagate final states to exp_tab for multi-step correctness. - Peephole, projection, layer norm, and aux input are not supported (raise OpNotImplemented). ## Testing - `test_unidirectional_sequence_lstm_none_activation` — output shape [batch, time, num_units] - `test_bidirectional_sequence_rnn_none_activation` — merge_outputs=True, shape [batch, time, 2*num_units] - `test_bidirectional_sequence_lstm_none_activation` — merge_outputs=True, shape [batch, time, 2*num_units] ```bash python -m pytest tests/python/relax/test_frontend_tflite.py -k "sequence_lstm or sequence_rnn" -v ```