Mateja,

To add to Scott's answer, a good example to look at is this file in the Cerebro 
2 project that extracts a bunch of relevant information from the Spatial Pooler 
and Temporal Memory:
https://github.com/numenta/nupic.cerebro2.server/blob/master/py/cerebro2/patcher.py
 
<https://github.com/numenta/nupic.cerebro2.server/blob/master/py/cerebro2/patcher.py>

- Chetan

> On Mar 14, 2015, at 5:29 PM, Scott Purdy <[email protected]> wrote:
> 
> Hi Mateja,
> 
> This is a good question. The example that you mention is using the CLAModel, 
> which is an OPF wrapper around a Network instance. A Network has a set of 
> Regions that are linked together and each Region is a single algorithm 
> component (like encoders, a spatial pooler, or a temporal memory instance). 
> To get the data you are interested in, the first step is to extract the 
> algorithm instances from the network, specifically the temporal memory 
> (called TP in the code) and the spatial pooler. Here is a sample:
> 
> # Extract the spatial pooler
> spRegion = model._getSPRegion()
> 
> # Extract the temporal memory
> tmRegion = model._getTPRegion()
> tm = tmRegion.getSelf()._tfdr
> 
> # Get the active cells
> tm.infActiveState["t"]
> 
> 
> Spatial Pooler - for connections between columns and inputs
> 
> From here, you can look at the implementations of the algorithms to see how 
> to get each of the pieces of information that you need. The spatial pooler is 
> a Python wrapper around a C++ class. The implementation is here:
> https://github.com/numenta/nupic.core/blob/master/src/nupic/algorithms/SpatialPooler.hpp
>  
> <https://github.com/numenta/nupic.core/blob/master/src/nupic/algorithms/SpatialPooler.hpp>
> 
> and the wrapper code is here:
> https://github.com/numenta/nupic/blob/284f53d55aeb948857267246661a617caf8848fe/nupic/bindings/algorithms.i#L1829
>  
> <https://github.com/numenta/nupic/blob/284f53d55aeb948857267246661a617caf8848fe/nupic/bindings/algorithms.i#L1829>
> 
> Alternatively, you can change the model parameters in this file to set 
> spatialImp to "py":
> https://github.com/numenta/nupic/blob/284f53d55aeb948857267246661a617caf8848fe/examples/opf/clients/hotgym/simple/model_params.py#L99
>  
> <https://github.com/numenta/nupic/blob/284f53d55aeb948857267246661a617caf8848fe/examples/opf/clients/hotgym/simple/model_params.py#L99>
> 
> which will use this pure-Python implementation:
> https://github.com/numenta/nupic/blob/master/nupic/research/spatial_pooler.py 
> <https://github.com/numenta/nupic/blob/master/nupic/research/spatial_pooler.py>
> 
> Temporal Memory - for connections between cells, active cells, predicted 
> cells, anomaly score
> 
> The example you mention is using a hybrid Python/C++ temporal memory 
> implementation. The Python class is called TP10X2 and some of the state is 
> stored in a C++ class called Cells4:
> https://github.com/numenta/nupic/blob/master/nupic/research/TP10X2.py 
> <https://github.com/numenta/nupic/blob/master/nupic/research/TP10X2.py>
> https://github.com/numenta/nupic.core/blob/master/src/nupic/algorithms/Cells4.hpp
>  
> <https://github.com/numenta/nupic.core/blob/master/src/nupic/algorithms/Cells4.hpp>
> 
> I hope this helps. If you have trouble getting some values then let me know!
> 
> On Fri, Mar 13, 2015 at 11:31 AM, Mateja Putic <[email protected] 
> <mailto:[email protected]>> wrote:
> I am working on a project related to computer architecture and HTM and I am 
> interested in extracting architectural parameters from the CLA after 
> learning. What's the best way to do this?
> 
> For example, in the examples/opf/clients/hotgym/simple example, after running 
> the CLA with the inputs, I'd like to extract these parameters from the model:
> 
> - Connections between bits of the input vector and columns
> - Connections between cell outputs and segments
> - Number of segments on a cell
> - Segment thresholds
> 
> What data structures contain this information, and in what file(s) are their 
> getters?
> 
> Thanks,
> 
> -- 
> Mr. Mateja Putic
> Ph.D Candidate
> Department of Electrical and Computer Engineering
> University of Virginia
> (703) 303-2099 <tel:%28703%29%20303-2099>

Reply via email to