Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def activatePredColCells(col,prevActiveCells,prevWinnerCells,colActiveCells,colMatchingCells,cells_segments):
- global TM_segActiveThresh,TM_permINC,TM_permDEC,TM_segNewSynCount,TM_learn, TM_segMaxSyns
- activeCs = list()
- winnerCs = list()
- for cell in colActiveCells:
- activeCs.append(cell)
- winnerCs.append(cell)
- if TM_learn:
- segList = cells_segments[cell]
- for seg in segList:
- segIndex = segList.index(seg)
- if len(activeSynapsesOnSegment(seg,prevActiveCells)) > TM_segActiveThresh:
- for preSynCell,perm in seg.items():
- if preSynCell in prevActiveCells:
- if (perm + TM_permINC) > 1.0:
- cells_segments[cell][segIndex][preSynCell] = 1.0
- else:
- cells_segments[cell][segIndex][preSynCell] += TM_permINC
- else:
- if (perm - TM_permDEC) < 0:
- cells_segments[cell][segIndex][preSynCell] = 0
- else:
- cells_segments[cell][segIndex][preSynCell] -= TM_permDEC
- key = str(cell) + '_' + str(segIndex)
- if cellsSegInds_numActivePotentialSyns[key] < TM_segMaxSyns:
- newSynCount = TM_segNewSynCount - cellsSegInds_numActivePotentialSyns[key]
- growSynapses(seg,cell,newSynCount,prevWinnerCells)
- return activeCs,winnerCs,cells_segments
- def burstCol(col,prevActiveCells,prevWinnerCells,activeSegCells,matchingSegCells,cells_segments,cellsSegInds_numActivePotentialSyns):
- global TM_segNewSynCount,TM_segMaxSyns
- activeCs = list()
- winnerCs = list()
- for cell in cellsFromCol(col):
- activeCs.append(cell)
- if len(matchingSegCells) > 0:
- learningSegment,winnerCell = bestMatchingSegmentAndCell(col,matchingSegCells,prevWinnerCells,cells_segments,cellsSegInds_numActivePotentialSyns)
- else:
- winnerCell = leastUsedCell(col,cells_segments)
- if TM_learn and len(prevWinnerCells) > 0:
- learningSegment,cells_segments = growNewSegment(winnerCell,prevWinnerCells,prevActiveCells,cells_segments)
- winnerCs.append(winnerCell)
- if TM_learn and len(prevWinnerCells) > 0:
- segIndex = cells_segments[winnerCell].index(learningSegment)
- for preSynCell,perm in learningSegment.items():
- if preSynCell in prevActiveCells:
- if (perm + TM_permINC) > 1.0:
- cells_segments[winnerCell][segIndex][preSynCell] = 1.0
- else:
- cells_segments[winnerCell][segIndex][preSynCell] += TM_permINC
- else:
- if (perm - TM_permDEC) < 0:
- cells_segments[winnerCell][segIndex][preSynCell] = 0
- else:
- cells_segments[winnerCell][segIndex][preSynCell] -= TM_permDEC
- key = str(cell) + '_' + str(segIndex)
- numActiveSynsOnSeg = 0
- if key in cellsSegInds_numActivePotentialSyns:
- numActiveSynsOnSeg = cellsSegInds_numActivePotentialSyns[key]
- newSynapseCount = max( (TM_segNewSynCount - numActiveSynsOnSeg),0)
- growSynapses(learningSegment,winnerCell,newSynapseCount,prevWinnerCells)
- return activeCs,winnerCs,cells_segments
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement