Hi, Welcome!
Thanks for your suggestions as I have not really taken time to do an optimization pass over some of htm.java's code. I was intending to circle back around to doing micro-optimizations (as you can see in the roadmap) at a later date because I needed to get a "feel" for how everything would flow together, especially given that NuPIC may still undergo major changes resulting from Numenta's latest research initiatives. If you would like to submit a PR with some of your changes, I would encourage you to group them according to specific areas or themes which would make it easier to assess the changes and possibly integrate your work. The current architecture is a work in progress, so if you would like to discuss certain areas where you have ideas, that would be welcome. There already exists an issue to address the most favorable representation of vectors to use within htm.java here: https://github.com/numenta/htm.java/issues/116 There have been a few articles written which compare the use of the Java Bitset with the use of integers, some of which are discussed by myself and other developers - there in that issue. Feel free to comment there, or discuss some of the ideas you are developing in that issue. I have reviewed your changes, and while I can't say I agree with all of them, there are some useful changes for things I haven't gotten back around to, and I would encourage you to keep on with it if you feel you would like to - htm.java can only profit from increased interest and communication. Regards, David On Fri, Dec 5, 2014 at 1:52 PM, SeH <[email protected]> wrote: > here is a recent attempt at refactoring and optimizing the htm.java code: > > https://github.com/automenta/htm.java > > - this fork functions nearly the same (~3 out of 150 unit tests are > broke) > - seems to be significantly faster, having changed some data > structures and removed some redundancy. there is also a bitset > implementation of some of the matrix code which not only should save memory > but save time by requiring fewer iterations (uncomfirmed) > - working with the api in this feels a bit better than the official > htm.java, having renamed a number of classes and methods. these sorts of > renaming could be taken even further. > - there's a significantly modified parameter API, that could be even > better with some more work. > - begun some integration with Apache Commons Math 3.3 library, which > can provide sparse matrix, vector support, among many other things. basing > some of the classes in Commons Math, such as Univariate functions for > scalar functions, would expand the available variety of configurations. > > i'm not sure if or when i'll continue on it but feel free to merge some or > all of the changes. unfortunately it may be somewhat infeasible to do a > line-by-line comparison between the official branch and this because too > many lines have changed so quickly and drastically. > > i wanted to compare better the other HTM/CLA java implementations for > ideas. there are several and i'm sure they are full of good ideas not just > in the API design but the GUIs. an OpenCL GPU implementation may be > possible. the continuous GPU version here > https://github.com/222464/ContinuousHTMGPU seems particularly interesting > > i am thinking of more ideas for GUI and parameter search methods other > than PSO. these apply to different projects, not just nupic, but could > provide a way to connect them in experiments at the GUI level. it might be > interesting to use a JavaBean encoder to input JMX-like metrics from a > running system, even another running HTM. > > > > On Thu, Dec 4, 2014 at 8:13 AM, Julian Ricardo <[email protected] > > wrote: > >> Great news, thanks! >> Scala + AKA / Spark + HDFS should be next! >> >> On Wed, Dec 3, 2014 at 10:19 PM, Matthew Taylor <[email protected]> wrote: >> >>> Hello NuPIC, >>> >>> David Ray and a handful of contributors have been working on htm.java >>> over the past several months, and it is finally "feature complete"! >>> >>> http://numenta.org/blog/2014/12/03/htm-on-the-jvm.html >>> >>> Exciting news! Do you know any java developers who'd like to try >>> NuPIC? Tell them about https://github.com/numenta/htm.java! >>> >>> --------- >>> Matt Taylor >>> OS Community Flag-Bearer >>> Numenta >>> >>> >> > -- *We find it hard to hear what another is saying because of how loudly "who one is", speaks...*
