Unofficial open source htm.java version (Berlin Brown)
Currently can build with Maven:
Will not use gradle
Apache Maven 3.8.6
Test Compile with Java 11, compile to Java8
IDE Environment - Tested with Eclipse - Version: 2023-12 (4.30.0)
At project root
$ mvn clean package
or
$ mvn clean compile exec:java
Unit and Integration tests will run
Official is Here Java™ version of...
Hierarchical Temporal Memory (HTM)
Based on official version, fork for simplicity
Community-supported & ported from the Numenta Platform for Intelligent Computing (NuPIC) python project.
NOTE: Minimum JavaSE version is 8
(Tracked according to core algorithms)
Core Algorithm | NuPIC Date | HTM.Java Date | Latest NuPIC SHA | Latest HTM.Java SHA | Status |
---|---|---|---|---|---|
SpatialPooler | 2016-12-11 | 2016-10-07 | commit | commit | *Behind NuPIC Merge #3411 |
TemporalMemory | 2017-06-02 | 2016-10-13 | commit | commit | *Behind NuPIC Merge #3654 |
* May be one of: "Sync'd" or "Behind". "Behind" expresses a temporary lapse in synchronization while devs are implementing new changes.
NOTE: "Behind" status does not imply any lack of operational ability. The master
branch of HTM.Java will always be fully operational.
Any fully critical feature addition to NuPIC will always be matched (sync'd) ASAP, however due to ongoing updates, the algortithms within NuPIC may reach ahead for a short period of time while the HTM Community is busy porting the difference(s). We are committed to keeping HTM.Java up to date with NuPIC at all times.
The primary goal of this library development is to provide a Java version of NuPIC that has a 1-to-1 correspondence to all systems, functionality and tests provided by Numenta's open source implementation; while observing the tenets, standards and conventions of Java language best practices and development.
By working closely with Numenta and receiving their enthusiastic support and guidance, it is intended that this library be maintained as a viable Java language alternative to Numenta's C++ and Python offerings. However it must be understood that "official" support is (for the time being) currently limited to community resources such as the maintainers of this library and Numenta Forums / Message Lists and IRC:
- (A) Instructions for developers who would like to contribute code back to the community. (Fork)
- (B) Instructions for those who would like to "fiddle around" with the code in thier own github repo. (Clone)
- (C) How to download Zipped or Tar'd Tagged Releases (Download Zip or Tar)
A. Developers who wish to make contributions are required to Fork the htm.java repo and then clone from their personal "Fork" of htm.java...
your_git_directory% git clone https://github.com/<your_github_username>/htm.java.git
B. Anybody who just wants to "play" with the code...
your_git_directory% git clone https://github.com/numenta/htm.java.git
C. Proceed here to download the latest tagged release (or older if you like)
The instructions on the above link (Fork the htm.java repo) provide detail about how to fork github repos...
In addition: a video is provided that explains Numenta's contributor rules and plenty of helpful tips on using git and other commands.