I’m trying to use the Network API to build a classifier and I’m very confused about the possible links between Regions. I can’t seem to make sense of the TopDown and BottomUp directions and how they relate to a Nupic network structure. Is there a document that describes the differences between these types of links and when I would use them for specific regions?
The C++ Style guide is the only document I’ve seen that has this.
|nodeSpecItem name||Type||Node type||Description|
|dataOut||O||NL||The primary output of the node|
|dataIn||I||NL||The primary input to the node|
|bottomUpOut||O||LUnsup||Output from a learning node (intended for higher level nodes)|
|bottomUpIn||I||L||Input to a learning node (intended to be from lower level nodes)|
|topDownIn||I||L||(optional) Input to a learning node (intended for nodes that receive input from higher level nodes)|
|topDownOut||O||L||(optional) Output from a learning node (intended for nodes that send output to lower level nodes)|
But, which node is “higher” and which is “lower” when I set up a Sensor feeding to SpatialPooler to a TemporalMemory?
The network quick start guide connects the SpatialPooler to TemporalMemory via bottomUpOut to bottomUpIn.
While the Network API Demo (network_api_demo.py) connects them via an undefined default link and a link from TM to SP via topDownOut to a topDownIn.
network.link(“spatialPoolerRegion”, “temporalPoolerRegion”, “UniformLink”, “”)
network.link(“temporalPoolerRegion”, “spatialPoolerRegion”, “UniformLink”, “”,