Jeff’s talk at the APL last month reinvigorated my interest in HTM, so I’ve spent the last month or so catching up on the current state of things. To help me with that goal, I ended up tinkering on ZHTM after work.
ZHTM is a Python 3 implementation of both a Spatial Pooler and the Temporal Memory algorithm (as defined largely by BAMI). The current implementation uses just base Python; the only dependencies (thus far) are
pytest-mock for testing purposes.
As of earlier today, it is at least possible to feed inputs into the Temporal Memory algorithm repeatedly without obvious errors, so I’m celebrating that milestone by posting here.
I’ve also got some super-hacky Vue.js visualizations in progress, but they are a significantly less demo-worthy at the moment:
Over the next month, I am hoping to move the system from “doesn’t throw exceptions” into “might be useful” territory:
- Add integration tests to assert that Spatial Pooler and Temporal Memory operate as expected at a higher level than the unit tests currently provide
- Create example systems with known data sets (e.g. the gym or traffic data sets)
- Add 5+ of the basic encoders
- Create demos of at least 3 major components of the system via the web viewer (unpublished)
Anyway, thanks to everyone for your helpful posts and articles. I haven’t said much in the last month, but I appreciate all the knowledge you’ve been sharing.
P.S. Here’s part of the call graph from calling the Temporal Memory algorithm 20 times. I just thought it looked neat.