Temporal Pooler Implementation

Hey Guys, I want to implement a version of the Temporal Pooler but I do not know how it operates.
I understand the function, but I do not understand the mechanics behind it.

It should be some form of higher order markov chain?

Did read the materials and check some videos but for some reason the mechanics eludes me. Any help or pointers would be greatly appreciated.

1 Like

To answer my own question I just found this in another thread and will give it a spin;

1 Like

@Franky - that’s probably the best place to look, and contains updated pseudocode. To check some of the details you may also want to look at this Python implementation, which is designed to be relatively easy to read:



Thanks @subutai! Do you have information regarding the new TP and old TP? I have just seen it mentioned there are two different versions, but not found any documentation.


Hi Franky,

The old CLA Whitepaper (circa 2011), documents the process outlined as the old TP. The new TemporalMemory is pretty much sufficiently documented by the comments in the code. Beginning with the compute() method, the logic unfolds and you can follow the method documentation to see how the algorithm progresses as the method documentation reads like pseudocode.

1 Like

Thanks Cogmission for clarifying that!
Much appreciated.

1 Like

Hi Guys,

Incidentally, It would be nice that when @mrcslws finishes https://github.com/numenta/htm.java/issues/421 - that the documentation of the compute() method be just as clear and outline the algorithm steps just like the current one does?

Just saying this because NuPIC adheres to an excellent standard for method documentation and here in the algorithms it really is helpful to be able to see what is going to happen via a pseudocode type description. I’m not saying that Marcus wasn’t going to do it anyway :stuck_out_tongue: - he most probably would, I just want to make sure we keep on the lookout for this important quality… I hope I’m not over-explaining? I do this because this medium seems to tend to invite misinterpretation :stuck_out_tongue: (Ok now THAT’s over explaining)

1 Like