Metadata-Version: 2.1
Name: bbhamux
Version: 0.2.0
Summary: Minimal library to construct Hierarchical Associative Memories
License: Apache 2.0
Author: Ben Hoover
Author-email: benhoover34@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: equinox (>=0.11.2,<0.12.0)
Requires-Dist: jax (>=0.4.14,<0.5.0)
Requires-Dist: jaxtyping (>=0.2.25,<0.3.0)
Description-Content-Type: text/markdown

# Barebones-HAMUX
> [HAMUX](https://github.com/bhoov/hamux) built using [equinox](https://github.com/patrick-kidger/equinox), minimal implementation. A temporary solution as HAMUX is being rebuilt.

Build any hopfield network using energy fundamentals. See the original [HAMUX documentation](https://bhoov.com/hamux/) for explanation.

## Install: File copy

All logic is in one file: `hamux.py`. Please copy this file into whatever project you are working on, and modify as needed. You will need to manually install dependencies:

```
pip install equinox jax
pip install pytest # for tests
```

Install correct version of `jaxlib` for your hardware (e.g., to run on GPUs).

Run `demo.ipynb` for an example training on MNIST. *Works best with GPU*

## Install: Pip



## Tests

All basic tests for this package are in `test.py`.

```
pytest test.py
```

## Citation

If this repository is useful for this work, please cite the following:

```
@inproceedings{
hoover2022universal,
title={A Universal Abstraction for Hierarchical Hopfield Networks},
author={Benjamin Hoover and Duen Horng Chau and Hendrik Strobelt and Dmitry Krotov},
booktitle={The Symbiosis of Deep Learning and Differential Equations II},
year={2022},
url={https://openreview.net/forum?id=SAv3nhzNWhw}
}
```
