Setting SPRegion parameters


I am trying to use nupic.regions.SPRegion to create a spatial pooler region by directly creating object of SPRegion using its constructor/initializer. I am using the default ‘cpp’ implementation. I want to know how can I set some internal parameters of Spatial Pooler for ‘cpp’ implementation, for example numActiveColumnsPerInhArea.

My current problem is the numActiveColumnsPerInhArea is set to default 10 which does not allow enough active synapses for temporal pooler to kick into action. I do not see any predicted cells in temporal pooler. I checked that by changing SPRegion implementation to ‘py’ where I specified a higher numActiveColumnsPerInhArea, after which I get some predicted cells in temporal pooler.

There may be better ways to solve my current problem, but I still need to know how can I change other Spatial Pooler parameters for ‘cpp’ implementation.

Be sure to read about the 3 different ways to use the NuPIC API. It sounds like you might be mixing the Network API and Algorithms API. Either way you still need to get this numActiveColumnsPerInhArea correct. This value should be about 2% of the total number of columns in the SP. So if there are 2048 columns, the numActiveColumnsPerInhArea would be 40.

Thank you for this link. It really helps clarifying how to use Nupic.

I would like to use Algorithms API. But this link says I should be able to
find SpatialPooler in nupic.algorithms.spatial_pooler. But there is no
spatial_pooler in nupic.algorithms. Am I missing something?

Also, is it true that Algorithms API will be slower than the Network API?
Because it seems Network API has ‘cpp’ bindings.

Pulin Agrawal
पुलिन अग्रवाल

You might have an older version of the source code. See: WARNING: 0.7.0 breaking changes - #4 by rhyolight