Giter Club home page Giter Club logo

barebones-hamux's Introduction

Barebones-HAMUX

HAMUX built using equinox, minimal implementation. A temporary solution as HAMUX is being rebuilt. See the original HAMUX documentation for explanation.

Consists of 1 main file bbhamux.py (<200 lines of important code) and 1 demo notebook: demo.ipynb

All other files are scaffolding for e.g., docs, tests, pypi.

The documentation is designed to be a thorough but gentle introduction to everything you need to know about (energy-based) Associative Memories and Hopfield Networks.

bbhamux is pronounced as "barebones hamux" or "baby hamux".

Install with pip

pip install bbhamux

Install by copying bbhamux.py

All logic is in one file: bbhamux.py. Copy this file into your project, modify as needed. The best kind of research code.

You will need to manually install dependencies:

pip install equinox jax

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

Quickstart

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

Testing

pip install pytest
pytest test.py

Writing docs

Development

pip install nbdev
# Edit documentation in `nbs/`
nbdev_preview

Deploying

nbdev_docs
# git commit & push `docs/` folder

Contributing

We use poetry to manage dependencies. Install all dependencies (including nbdev and pytest) with:

poetry install --with docs --with test

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}
}

barebones-hamux's People

Contributors

bhoov avatar

Stargazers

Michael Nguyen Jr avatar Daniele Lotito avatar Carlo Lucibello avatar Adam Wentz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.