Advertisement
Guest User

Untitled

a guest
Jun 10th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.46 KB | None | 0 0
  1. def activatePredColCells(col,prevActiveCells,prevWinnerCells,colActiveCells,colMatchingCells,cells_segments):
  2.     global TM_segActiveThresh,TM_permINC,TM_permDEC,TM_segNewSynCount,TM_learn, TM_segMaxSyns
  3.     activeCs = list()
  4.     winnerCs = list()    
  5.     for cell in colActiveCells:
  6.         activeCs.append(cell)
  7.         winnerCs.append(cell)
  8.         if TM_learn:
  9.             segList = cells_segments[cell]
  10.             for seg in segList:
  11.                 segIndex = segList.index(seg)
  12.                 if len(activeSynapsesOnSegment(seg,prevActiveCells)) > TM_segActiveThresh:
  13.                     for preSynCell,perm in seg.items():
  14.                         if preSynCell in prevActiveCells:
  15.                             if (perm + TM_permINC) > 1.0:
  16.                                 cells_segments[cell][segIndex][preSynCell] = 1.0
  17.                             else:
  18.                                 cells_segments[cell][segIndex][preSynCell] += TM_permINC
  19.                         else:
  20.                             if (perm - TM_permDEC) < 0:
  21.                                 cells_segments[cell][segIndex][preSynCell] = 0
  22.                             else:
  23.                                 cells_segments[cell][segIndex][preSynCell] -= TM_permDEC              
  24.                     key = str(cell) + '_' + str(segIndex)        
  25.                     if cellsSegInds_numActivePotentialSyns[key] < TM_segMaxSyns:
  26.                         newSynCount = TM_segNewSynCount - cellsSegInds_numActivePotentialSyns[key]
  27.                         growSynapses(seg,cell,newSynCount,prevWinnerCells)
  28.     return activeCs,winnerCs,cells_segments
  29.  
  30. def burstCol(col,prevActiveCells,prevWinnerCells,activeSegCells,matchingSegCells,cells_segments,cellsSegInds_numActivePotentialSyns):
  31.     global TM_segNewSynCount,TM_segMaxSyns
  32.     activeCs = list()    
  33.     winnerCs = list()
  34.     for cell in cellsFromCol(col):
  35.         activeCs.append(cell)    
  36.     if len(matchingSegCells) > 0:
  37.         learningSegment,winnerCell = bestMatchingSegmentAndCell(col,matchingSegCells,prevWinnerCells,cells_segments,cellsSegInds_numActivePotentialSyns)
  38.     else:
  39.         winnerCell = leastUsedCell(col,cells_segments)
  40.         if TM_learn and len(prevWinnerCells) > 0:
  41.             learningSegment,cells_segments = growNewSegment(winnerCell,prevWinnerCells,prevActiveCells,cells_segments)
  42.     winnerCs.append(winnerCell)
  43.     if TM_learn and len(prevWinnerCells) > 0:
  44.         segIndex = cells_segments[winnerCell].index(learningSegment)
  45.         for preSynCell,perm in learningSegment.items():
  46.             if preSynCell in prevActiveCells:
  47.                 if (perm + TM_permINC) > 1.0:
  48.                     cells_segments[winnerCell][segIndex][preSynCell] = 1.0
  49.                 else:
  50.                     cells_segments[winnerCell][segIndex][preSynCell] += TM_permINC
  51.             else:
  52.                 if (perm - TM_permDEC) < 0:
  53.                     cells_segments[winnerCell][segIndex][preSynCell] = 0
  54.                 else:
  55.                     cells_segments[winnerCell][segIndex][preSynCell] -= TM_permDEC                  
  56.         key = str(cell) + '_' + str(segIndex)
  57.         numActiveSynsOnSeg = 0
  58.         if key in cellsSegInds_numActivePotentialSyns:
  59.             numActiveSynsOnSeg = cellsSegInds_numActivePotentialSyns[key]
  60.         newSynapseCount = max( (TM_segNewSynCount - numActiveSynsOnSeg),0)
  61.         growSynapses(learningSegment,winnerCell,newSynapseCount,prevWinnerCells)
  62.     return activeCs,winnerCs,cells_segments
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement