HTM.java documentation not very useful any help?

Hello
I’m a computer scientist that has a passion for the machine learning world so in the spare time I find myself looking for materials and the new algorithms, this make me very good in understanding systems but I don’t practice programming all days.
I’ve found and approached HTM less than a week ago and got fascinated by it.
Read the paper, watched all the videos I’ve found, understood 90% of all but 100% of what I think I need.
I’ve a pet project, a game, not useful for the rest of the world but me and I would like to make an agent of the game smart with the HTM.
The project is in Java.
I’ve cloned the git repository locally and run some of the tests included with it, so far so good, the tests runs smoothly to the end with no particular blocking errors.
So I tell myself “Time to implement it in my project”
I go to the documentation for HTM.java and I’m finding myself an hard time to build the simplest system…I get lost in how I can select an algorithms, setting parameters, encode my input in an online manner, get a prediction, how is shaped…this is not a complete list, just examples.
I can quite see that everything is there, but the documentation is poor, sometimes doesn’t reflect the code, sometimes the documentation links directly to the code but the code is not commented enough to make the life easier.
The website, the videos are all well made, it’s a bit of shame that after all the sparkling things I find very struggling with the implementing the basics only because I’m not able to glue the theory with the library implementation.
I hope that all this is only a problem for me, not for someone else, probably I’m not good enough and I’ve missed something important.

My question is: is there someone that is willing to help me to understand how to code the system I have in mind?
*I have as input a continuous stream of a certain number of double data (the number of features are still to be decided, but every one has min and max known)
*as output I would like to have the future guess of one of the features I put in input, but I would like to have the guess at +t chosen every guess

From theory this all should be fine to do.

Thanks for any help I will receive and sorry for the complain above, is mostly coming from my frustration in not succeeding in using this appealing algorithm.

1 Like

Hi @SirStone,

I’ve been away from the project for a a while, but did you see the extensive wiki?

@SirStone,

…also I forgot to mention, but the tests (in the “Network” package) detail many different data ingestion scenarios… I would look at those to see how the API is used under different circumstances…

Sorry again if I looked a bit brutal on the approach. It’s really out of my frustration.

Of course I’ve looked at the Wiki, and I’m looking at the code of the tests right now, I’m not giving up easily.

Maybe, if I can make a suggestion; if the right way to learn the implementation is to look at the test code because you put a lot of effort in it (that’s good) and is much more complete than the documentation that is falling behind, a shortcut could be that the wiki lists down an index of the tests with a brief description of what the test does so the user can quickly understand what are the tests useful for him. This should be faster than writing the documentation for all the quirks implemented in the code.

Hi,

I recently clone the repo and try to compile the project.

As I do the command gradle check as the documents instructed I got an error saying:

A problem occurred evaluating root project ‘htm.java’.

org.gradle.api.internal.java.JavaLibrary.(Lorg/gradle/api/artifacts/PublishArtifact;Lorg/gradle/api/artifacts/DependencySet;)V

Does anyone meet this problem before or have any solutions for that?

Thank you so much

Hi @maizeng2008,

Looks like missing classes from the Gradle library. This could be caused by a gradle version issue. Try looking on the site wiki for “gradle issue” - I think there may have been a solution for this… Just thought I’d try to help real quick.

Hi @SirStone,

Sorry, I’ve turned my attention away for the time being since there is no more new development going on in NuPIC proper. I was waiting for community code to be “cut-over” to the official repo if it was “approved”… Otherwise, I have nothing “official” to implement. So I wouldn’t classify the documentation as “falling behind” - because there is no new dev.

HTM.Java is an “open” project which depends on volunteers for its development, so please feel free to contribute what you can… I and/or others in the forum will continue to answer whatever questions we can, and have time for as you begin to familiarize yourself with the code. I would suggest first implementing your own tests to duplicate some of the functionality, and then try assembling an implementation of your own project.

Write us back here with specific questions when you’re able…

Thank you for your interest and time!

Cheers,
David

Thank you!

Hi, @SirStone

Did you manage to build the project (HTM.java)?

I think I have a dependcy issue here. It looks like the gradle cannot distiguish the plug in com.github.johnrengelman.shadow’

Have you ever met this problem?

Thank you

Hi @maizeng2008,

What OS are you on? I just downloaded and built a brand new repo and it was fine (no errors).

Hi, @cogmission

Thank you for reply!

Im building it with MacOS Catalina 10.15

It gave me an error saying

The maven plugin has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use the maven-publish plugin instead. Consult the upgrading guide for further information: https://docs.gradle.org/6.4.1/userguide/upgrading_version_5.html#legacy_publication_system_is_deprecated_and_replaced_with_the_publish_plugins

and it is for ‘com.github.johnrengelman.shadow’

Thank you!

@maizeng2008 Let’s continue the discussion over in your own topic?