Papers › Combining Recurrent, Convolutional, and Continuous-time Models with Linear State-Space Layers
Combining Recurrent, Convolutional, and Continuous-time Models with Linear State-Space Layers
Albert Gu, Isys Johnson, Karan Goel, Khaled Saab, Tri Dao, Atri Rudra, Christopher Ré
Recurrent neural networks (RNNs), temporal convolutions, and neural differential equations (NDEs) are popular families of deep learning models for time-series data, each with unique strengths and tradeoffs in modeling power and computational efficiency. We introduce a simple sequence model inspired by control systems that generalizes these approaches while addressing their shortcomings. The Linear State-Space Layer (LSSL) maps a sequence u ↦y by simply simulating a linear continuous-time state-space representation ẋ = Ax + Bu, y = Cx + Du. Theoretically, we show that LSSL models are closely related to the three aforementioned families of models and inherit their strengths. For example, they generalize convolutions to continuous-time, explain common RNN heuristics, and share features of NDEs such as time-scale adaptation. We then incorporate and generalize recent theory on continuous-time memorization to introduce a trainable subset of structured matrices A that endow LSSLs with long-range memory. Empirically, stacking LSSL layers into a simple deep neural network obtains state-of-the-art results across time series benchmarks for long dependencies in sequential image classification, real-world healthcare regression tasks, and speech. On a difficult speech classification task with length-16000 sequences, LSSL outperforms prior approaches by 24 accuracy points, and even outperforms baselines that use hand-crafted features on 100x shorter sequences.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2110.13985")
Code
Syntology Ran 19 of 53 code samples harvested from 2 repositories linked to this paper; 34 have no recorded run. Of those that ran: 1 ran · honoured contract; 7 ran · our draft was wrong; 1 ran · fixture could not drive it; 10 ran with no contract checked.
By repository: official repository: 21 samples from 1 repository, 5 ran; community (archive-listed): 32 samples from 1 repository, 14 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
53 samples harvested; 19 ran; 1 honoured the contract we drafted; 34 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 0 of the 53 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
cb3abb4ada7fc7ff · report
593ca2707277f71e · report
34578dc36217e336 · report
7c517b8f7718932b · report
ed6e51bbefca2745 · report
b3a41cf9e2138c02 · report
a60c853b3d7024c7 · report
a1dd4a16e1196aca · report
00154f7840152058 · report
81141f7c5522197d · report
88eaef5f62515c9f · report
1db67233065663ca · report
8103c0098e024755 · report
dbf1833166be1cf3 · report
d96570286a472e65 · report
1aae277f4cf8e81a · report
697edb25bf9082b4 · report
4bcd77da47e9c358 · report
45d50d8c1c4b0496 · report
cb32ae2fc0a0496a · report
23dbd9c19b70ad22 · report
39a79ffbeaf5161a · report
7f2bb3bf35b70eaa · report
cf3e99401a5ad03f · report
0453f5d294577c0b · report
607de35f88a24a0b · report
5ea0990f6eb42f27 · report
9b0ffc78557e9cc3 · report
f66beaf7866b4c6f · report
403b8f1b6abaaa0f · report
1f3623588b61ca31 · report
a4fab11358caea0b · report
2cf5ff23ecfa3933 · report
52ea678fdce28bba · report
36f810cba0fc9d56 · report
1ba9efb081e14c85 · report
a1854d1424f428c4 · report
4e63660dced1bbc9 · report
a0b28e1eded79ed6 · report
79ba70158d567f4b · report
cb793280365d3dc2 · report
be7778b030dc5a65 · report
9e48ee25e5b484f9 · report
8955b3cd44903d24 · report
c5b7da99a29efab0 · report
9f73999eb7f84e46 · report
c2bbb1019edcc65c · report
b17e090131fbe19a · report
64d7c0b2ad2fb17a · report
86a37c724512b568 · report
2cb05182094e1f1e · report
48deae9fbe0fc944 · report
e0c1f5471ad53082 · report
Tasks
Results from the paper archive 2025-07-28
| Task | Dataset | Model | Metric | Value | Rank at snapshot | Leaderboard | Report |
|---|---|---|---|---|---|---|---|
| Sequential Image Classification | Sequential CIFAR-10 | LSSL | Unpermuted Accuracy | 84.65% | #5 of 13 | Archive leaderboard | report |
| Sequential Image Classification | Sequential MNIST | LSSL | Permuted Accuracy | 98.76% | #2 of 30 | Archive leaderboard | report |
| Sequential Image Classification | Sequential MNIST | LSSL | Unpermuted Accuracy | 99.53% | #2 of 30 | Archive leaderboard | report |
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections