Hot Gym running in Python 3 via nupic.cpp & pybind

Hey folks, I just got a python3 script running hot gym data through SP/TM using the pybind bindings in nupic.cpp! I put it in a repo so anyone can continue working on it.

Some things to do:

  • date encoding
  • sdr classification

2 Likes

Hi all,

I finished up this example and added it to the community fork of nupic.

If you have the community fork of nupic installed then you should be able to run it with:
$ python3 -m nupic.examples.hotgym

The output looks like:


And it prints to the terminal the following pile of information:

Parameters:
{   'enc': {'resolution': 0.88, 'size': 700, 'sparsity': 0.02},
    'sdrc_alpha': 0.1,
    'sp': {   'boostStrength': 3.0,
              'columnCount': 1638,
              'numActiveColumnsPerInhArea': 72,
              'potentialPct': 0.85,
              'synPermActiveInc': 0.04,
              'synPermConnected': 0.13999999999999999,
              'synPermInactiveDec': 0.006},
    'time': {'timeOfDay': (30, 1), 'weekend': 21},
    'tm': {   'activationThreshold': 17,
              'cellsPerColumn': 13,
              'initialPerm': 0.21,
              'maxSegmentsPerCell': 128,
              'maxSynapsesPerSegment': 64,
              'minThreshold': 10,
              'newSynapseCount': 32,
              'permanenceDec': 0.1,
              'permanenceInc': 0.1}}

Encoded Input SDR( 11765 )
    Sparsity Min/Mean/Std/Max 0.00535487 / 0.00546173 / 5.48307e-05 / 0.00552486
    Activation Frequency Min/Mean/Std/Max 0 / 0.00546206 / 0.0314162 / 0.502847
    Entropy 0.639195
    Overlap Min/Mean/Std/Max 0.307692 / 0.889387 / 0.127927 / 1

Spatial Pooler Mini-Columns SDR( 1638 )
    Sparsity Min/Mean/Std/Max 0.043956 / 0.0439559 / 2.08729e-07 / 0.043956
    Activation Frequency Min/Mean/Std/Max 0.0175359 / 0.043956 / 0.0180039 / 0.0958778
    Entropy 0.98031
    Overlap Min/Mean/Std/Max 0 / 0.846659 / 0.258616 / 1
Spatial Pooler Connections:
    Inputs (11765) ~> Outputs (1638) via Segments (1638)
    Segments on Cell Min/Mean/Max 1 / 1 / 1
    Potential Synapses on Segment Min/Mean/Max 10000 / 10000 / 10000
    Connected Synapses on Segment Min/Mean/Max 93 / 386.627 / 2397
    Synapses Dead (0.91597%) Saturated (0.00237314%)


Temporal Memory Cells SDR( 21294 )
    Sparsity Min/Mean/Std/Max 0.00338123 / 0.0125091 / 0.0136217 / 0.043956
    Activation Frequency Min/Mean/Std/Max 0.00227738 / 0.0125092 / 0.00738557 / 0.0560237
    Entropy 0.970851
    Overlap Min/Mean/Std/Max 0 / 0.611465 / 0.38252 / 1
Temporal Memory Connections:
    Inputs (17542) ~> Outputs (21294) via Segments (43267)
    Segments on Cell Min/Mean/Max 0 / 2.03189 / 10
    Potential Synapses on Segment Min/Mean/Max 32 / 36.7408 / 64
    Connected Synapses on Segment Min/Mean/Max 27 / 34.0459 / 64
    Synapses Dead (0%) Saturated (0.27942%)


Predictive Error (RMS) 1 steps ahead: 17.93762259795675
Predictive Error (RMS) 5 steps ahead: 21.900156949876514
Anomaly Mean 0.21317594061261821
Anomaly Std  0.3403140170517574

If you have any questions please ask, or file an issue on our github page. Thanks!

2 Likes