Advertisement
Guest User

Untitled

a guest
Jun 8th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.51 KB | None | 0 0
  1. def runTM(SP_cols,activeCells,winnerCells,cells_activeSegs,cells_matchingSegs,cells_segments,cellsSegInds_numActivePotentialSyns):
  2.     global SP_numColumns
  3.     prevActiveCells = copy.deepcopy(activeCells)
  4.     prevWinnerCells = copy.deepcopy(winnerCells)
  5.     activeCells = []
  6.     winnerCells = []
  7.     activeSegCells = list(cells_activeSegs.keys())
  8.     matchingSegCells = list(cells_matchingSegs.keys())    
  9.     ''' PART 1: Activate a set of cells '''
  10.     for col in range(SP_numColumns):
  11.         colCells = cellsFromCol(col)
  12.         colActiveCells = [c for c in colCells if c in activeSegCells] #getActiveMatchingCellsFromCol(col,prevActiveCells,cells_segments)        
  13.         colMatchingCells = [c for c in colCells if c in matchingSegCells]        
  14.         if col in SP_cols:
  15.             if len(colMatchingCells) > 0:
  16.                 activeCs,winnerCs,cells_segments = activatePredColCells(col,prevActiveCells,prevWinnerCells,colActiveCells,colMatchingCells,cells_segments)
  17.                 activeCells += (activeCs)
  18.                 winnerCells += (winnerCs)
  19.             else:
  20.                 activeCs,winnerCs,cells_segments = burstCol(col,prevActiveCells,prevWinnerCells,colActiveCells,colMatchingCells,cells_segments,cellsSegInds_numActivePotentialSyns)
  21.                 activeCells += (activeCs)
  22.                 winnerCells += (winnerCs)
  23.         else:
  24.             if len(colMatchingCells) > 0:
  25.                 cells_segments = decColSegments(col,prevActiveCells,colMatchingCells,cells_segments)
  26.     ''' PART 2: Activate Predicted/Matching Segments '''
  27.     cells_activeSegs = dict()
  28.     cells_matchingSegs = dict()
  29.     for cell,segList in cells_segments.items():
  30.         for seg in segList:
  31.             segIndex = segList.index(seg)
  32.             numActiveConnected = 0
  33.             numActivePotential = 0
  34.             for preSynCell,perm in seg.items():
  35.                 if preSynCell in activeCells and perm > TM_permConnectThresh:
  36.                     numActiveConnected += 1
  37.                 if preSynCell in activeCells and perm > 0:
  38.                     numActivePotential += 1
  39.             if numActiveConnected > TM_segActiveThresh:
  40.                 cells_activeSegs[cell] = seg
  41.             if numActivePotential > TM_segMatchingThres:
  42.                 cells_matchingSegs[cell] = seg
  43.             key = str(cell) + '_' + str(segIndex)
  44.             cellsSegInds_numActivePotentialSyns[key] = numActivePotential
  45.     return activeCells,winnerCells,cells_activeSegs,cells_matchingSegs,cells_segments,cellsSegInds_numActivePotentialSyns
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement