Skip to main content

Stack Attention (wip)

For following a line of research that augments attention with a differentiable stack, beginning with DuSell et al. at ETH Zurich

Install

$ pip install stack-attention-pytorch

Usage

StackTransLayer

import torch
from stack_attention import StackTransLayer

tokens = torch.randn(2, 512, 256)

layer = StackTransLayer(256)

out1, state = layer(tokens)

out2, state = layer(
    out1,
    stack_state = state
)

assert out1.shape == out2.shape == tokens.shape

DataStructureTransLayer

Or declare a custom differentiable data structure

from stack_attention import DataStructureTransLayer, data_structure

counter = data_structure(
    init = lambda: torch.zeros(1),
    actions = dict(
        inc  = lambda s: s + 1.,
        dec  = lambda s: s - 1.,
        noop = lambda s: s,
    ),
    readout = lambda s: s
)

layer = DataStructureTransLayer(dim = 256, data_structure = counter)

tokens = torch.randn(2, 512, 256)
out, state = layer(tokens, recurrent = True)

Citations

@misc{dusell2024stackattentionimprovingability,
    title   = {Stack Attention: Improving the Ability of Transformers to Model Hierarchical Patterns},
    author  = {Brian DuSell and David Chiang},
    year    = {2024},
    eprint  = {2310.01749},
    archivePrefix = {arXiv},
    primaryClass = {cs.CL},
    url     = {https://arxiv.org/abs/2310.01749},
}
@misc{zhang2025stacktranslargelanguagemodel,
    title    = {StackTrans: From Large Language Model to Large Pushdown Automata Model},
    author   = {Kechi Zhang and Ge Li and Jia Li and Huangzhao Zhang and Yihong Dong and Jia Li and Jingjing Xu and Zhi Jin},
    year     = {2025},
    eprint   = {2507.15343},
    archivePrefix = {arXiv},
    primaryClass = {cs.SE},
    url      = {https://arxiv.org/abs/2507.15343},
}
@inproceedings{joulin2015inferring,
    author    = {Armand Joulin and Tom{\'a}{\v{s}} Mikolov},
    title     = {Inferring Algorithmic Patterns with Stack-Augmented Recurrent Nets},
    booktitle = {Advances in Neural Information Processing Systems 28 (NIPS 2015)},
    year      = {2015}
}

Metadata

Release files for stack-attention-pytorch 0.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stack-attention-pytorch 0.0.11
File Size Uploaded
stack_attention_pytorch-0.0.11.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stack-attention-pytorch 0.0.11
File Interpreter ABI Platform
stack_attention_pytorch-0.0.11-py3-none-any.whl Python 3 none any Details

Total release size: 28.6 kB

Release files / stack_attention_pytorch-0.0.11.tar.gz

Download URL stack_attention_pytorch-0.0.11.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a83ba0bd4b741d554fc469884c180a0cc2b103cf0390466e0549a2345296b9fb
BLAKE2b-256 checksum
How to use checksums
9edc3da836094d1676bd0f40caa08073bb837a406954b8737bb3c48bce39ab95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.17

Release files / stack_attention_pytorch-0.0.11-py3-none-any.whl

Download URL stack_attention_pytorch-0.0.11-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d5ebcf978b004b073ca91be237ffdaf214fdc9fe4004fa2409cf0618678b57b
BLAKE2b-256 checksum
How to use checksums
b9c7b1195c673b12f863e12a71e0af71800c08a5a38c9335ab9bf7f6f5288e5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.17

Release history Release notifications | RSS feed

0.0.12

2 release files

This release

0.0.11 This release

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page