RecurrentLayers
RecurrentLayers.jl extends Flux.jl recurrent layers offering by providing implementations of additional recurrent layers not available in base deep learning libraries.
Features
The package offers multiple layers for Flux.jl. Currently there are 30+ cells implemented, together with multiple higher level implementations:
| Short name | Publication venue | Official implementation |
|---|---|---|
| AntisymmetricRNN/GatedAntisymmetricRNN | ICLR 2019 | – |
| ATR | EMNLP 2018 | bzhangGo/ATR |
| BR/BRC | PLOS ONE 2021 | nvecoven/BRC |
| CFN | ICLR 2017 | – |
| coRNN | ICLR 2021 | tk-rusch/coRNN |
| DSGU | ACML 2016 | – |
| FastRNN/FastGRNN | NeurIPS 2018 | Microsoft/EdgeML |
| IndRNN | CVPR 2018 | Sunnydreamrain/IndRNNTheanoLasagne |
| IntersectionRNN | ICLR 2017 | - |
| JANET | arXiv 2018 | JosvanderWesthuizen/janet |
| LEM | ICLR 2022 | tk-rusch/LEM |
| LiGRU | IEEE Transactions on Emerging Topics in Computing 2018 | mravanelli/theano-kaldi-rnn |
| LightRU | MDPI Electronics 2023 | – |
| MCLSTM | NeurIPS 2017 | – |
| MinimalRNN | NeurIPS 2017 | – |
| MiRU1/MiRU2 | Neurocomputing 2026 | – |
| MultiplicativeLSTM | Workshop ICLR 2017 | benkrause/mLSTM |
| MGU | International Journal of Automation and Computing 2016 | – |
| MUT1/MUT2/MUT3 | ICML 2015 | – |
| NAS | arXiv 2016 | tensorflow_addons/rnn |
| OriginalLSTM | Neural Computation 1997 | - |
| PeepholeLSTM | JMLR 2002 | – |
| RAN | arXiv 2017 | kentonl/ran |
| RHN | ICML 2017 | jzilly/RecurrentHighwayNetworks |
| SCRN | ICLR 2015 | facebookarchive/SCRNNs |
| SGRN | IET 2018 | – |
| SGU | arXiv 2016 | – |
| STAR | IEEE Transactions on Pattern Analysis and Machine Intelligence 2022 | 0zgur0/STAckable-Recurrent-network |
| Typed RNN / GRU / LSTM | ICML 2016 | – |
| UGRNN | ICLR 2017 | - |
| UnICORNN | ICML 2021 | tk-rusch/unicornn |
| WMCLSTM | Neural Networks 2021 | – |
- Additional wrappers: Stacked RNNs,
Multiplicative RNN, and FastSlow.
Installation
You can install RecurrentLayers using either of:
using Pkg
Pkg.add("RecurrentLayers")julia> ]
pkg> add RecurrentLayersCitation
If you use RecurrentLayers.jl in your work, please consider citing
@misc{martinuzzi2025unified,
doi = {10.48550/ARXIV.2510.21252},
url = {https://arxiv.org/abs/2510.21252},
author = {Martinuzzi, Francesco},
keywords = {Machine Learning (cs.LG), Software Engineering (cs.SE), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Unified Implementations of Recurrent Neural Networks in Multiple Deep Learning Frameworks},
publisher = {arXiv},
year = {2025},
copyright = {Creative Commons Attribution 4.0 International}
}Contributing
Contributions are always welcome! We specifically look for :
- Recurrent cells you would like to see implemented
- Benchmarks
- Fixes for any bugs/errors
- Documentation, in any form: examples, how tos, docstrings
Please consider the following guidelines before opening a pull request:
- The code should be formatted according to the format file provided
- Variable names should be meaningful: please no single letter variables, and try to avoid double letters variables too. I know at the moment there are some in the codebase, but I will need a breaking change in order to fix the majority of them.
- The format file does not format markdown. If you are adding docs, or docstrings please take care of not going over 92 cols.
For any clarification feel free to contact me directly (@MartinuzziFrancesco) either in the julia slack, by email or X/bluesky.