The HTM Spatial Pooler: a neocortical algorithm for online sparse distributed coding

hi,
I look for some different algorithms/paper that improve HTM spatial pooling and I like to get the same input to these algorithms and compare their output of SP.
can any one help me? for start this experiments,I want first work on binary vector and compare the outputs of different methods using SP, and in second step I want work on MNIST dataset.

I would be grateful if help me and send me some paper with code in this topic.
thanks a lot

Have you read the spatial pooler chapter of BAMI?

1 Like

yes,thanks.
but it dos not have code to run

please some one help me, what is the output of SP in the code of this paper.

The output of the code in SP chapter of BAMI is activeColumns(t), which in the definitions section is defined as “List of column indices that are winners due to bottom-up input.”

1 Like

thanks Paul, what a bout the paper “the HTM spatial Pooler a neocortical algorithm for online sparse distributed coding”, in this code which parameter is output of SP?is the parameter “activeColumnsCurrentEpoch” the output of SP?

You are asking about the NuPIC Spatial Pooler implementation, correct? Sorry, your reference to the paper is throwing me off (also, I don’t see any reference to “activeColumnsCurrentEpoch” in spatial_pooler.py).

I don’t use NuPIC much myself, so I can only refer you to the API documentation (links to other versions are here) Looks like you create an array to hold the output of the algorithm, and pass it to the “compute” method. Someone more familiar with NPIC can probably give you a better answer, though.

thanks for your answer.but I read this paper(the HTM spatial Pooler a neocortical algorithm for online sparse distributed coding) and run the code. then I run the “train_sp.py” and i like to know what is the SP output?
the code adress is here:
https://github.com/numenta/htmpapers

The Spatial Pooler computes a set of active minicolumns for each input you give it. The train_sp.py script will create an SP model by running lots of input through it. For each input, the SP computes active minicolumns. The result of running that scripts is a trained model, not the active minicolumns. To get a set of active minicolumns, you must run the compute() function, which in this case is within some imported code you can find here:

Hopefully this function will show you how the outputColumns are constructed. They are created as zeros and populated after the computation.

1 Like

A post was merged into an existing topic: How Can We Be So Dense? The Benefits of Using Highly Sparse Representations