Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def runTM(SP_cols,activeCells,winnerCells,cells_activeSegs,cells_matchingSegs,cells_segments,cellsSegInds_numActivePotentialSyns):
- global SP_numColumns
- prevActiveCells = copy.deepcopy(activeCells)
- prevWinnerCells = copy.deepcopy(winnerCells)
- activeCells = []
- winnerCells = []
- activeSegCells = list(cells_activeSegs.keys())
- matchingSegCells = list(cells_matchingSegs.keys())
- ''' PART 1: Activate a set of cells '''
- for col in range(SP_numColumns):
- colCells = cellsFromCol(col)
- colActiveCells = [c for c in colCells if c in activeSegCells] #getActiveMatchingCellsFromCol(col,prevActiveCells,cells_segments)
- colMatchingCells = [c for c in colCells if c in matchingSegCells]
- if col in SP_cols:
- if len(colMatchingCells) > 0:
- activeCs,winnerCs,cells_segments = activatePredColCells(col,prevActiveCells,prevWinnerCells,colActiveCells,colMatchingCells,cells_segments)
- activeCells += (activeCs)
- winnerCells += (winnerCs)
- else:
- activeCs,winnerCs,cells_segments = burstCol(col,prevActiveCells,prevWinnerCells,colActiveCells,colMatchingCells,cells_segments,cellsSegInds_numActivePotentialSyns)
- activeCells += (activeCs)
- winnerCells += (winnerCs)
- else:
- if len(colMatchingCells) > 0:
- cells_segments = decColSegments(col,prevActiveCells,colMatchingCells,cells_segments)
- ''' PART 2: Activate Predicted/Matching Segments '''
- cells_activeSegs = dict()
- cells_matchingSegs = dict()
- for cell,segList in cells_segments.items():
- for seg in segList:
- segIndex = segList.index(seg)
- numActiveConnected = 0
- numActivePotential = 0
- for preSynCell,perm in seg.items():
- if preSynCell in activeCells and perm > TM_permConnectThresh:
- numActiveConnected += 1
- if preSynCell in activeCells and perm > 0:
- numActivePotential += 1
- if numActiveConnected > TM_segActiveThresh:
- cells_activeSegs[cell] = seg
- if numActivePotential > TM_segMatchingThres:
- cells_matchingSegs[cell] = seg
- key = str(cell) + '_' + str(segIndex)
- cellsSegInds_numActivePotentialSyns[key] = numActivePotential
- return activeCells,winnerCells,cells_activeSegs,cells_matchingSegs,cells_segments,cellsSegInds_numActivePotentialSyns
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement