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?
bottomUpIn
topDownIn
spatialTopDownOut
temporalTopDownOut
bottomUpOut
resetIn
topDownOut
temporalTopDownIn
spatialTopDownIn
categoryOut
categoryIn
The C++ Style guide is the only document I’ve seen that has this.
http://nupic.docs.numenta.org/1.0.3/contributing/cpp-style-guide.html?highlight=topdownout
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.
http://nupic.docs.numenta.org/1.0.5/quick-start/network.html
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”, “”,
srcOutput=“topDownOut”, destInput=“topDownIn”)