示例#1
0
  def testGetBestMatchingCell(self):
    tm = TemporalMemory(
      connectedPermanence=0.50,
      minThreshold=1,
      seed=42
    )

    connections = tm.connections
    connections.createSegment(0)
    connections.createSynapse(0, 23, 0.6)
    connections.createSynapse(0, 37, 0.4)
    connections.createSynapse(0, 477, 0.9)

    connections.createSegment(0)
    connections.createSynapse(1, 49, 0.9)
    connections.createSynapse(1, 3, 0.8)

    connections.createSegment(1)
    connections.createSynapse(2, 733, 0.7)

    connections.createSegment(108)
    connections.createSynapse(3, 486, 0.9)

    activeSynapsesForSegment = {
      0: set([0, 1]),
      1: set([3]),
      2: set([5])
    }

    self.assertEqual(tm.getBestMatchingCell(connections.cellsForColumn(0),
                                            activeSynapsesForSegment,
                                            connections),
                     (0, 0))

    self.assertEqual(tm.getBestMatchingCell(connections.cellsForColumn(3),  # column containing cell 108
                                            activeSynapsesForSegment,
                                            connections),
                     (96, None))  # Random cell from column

    self.assertEqual(tm.getBestMatchingCell(connections.cellsForColumn(999),
                                            activeSynapsesForSegment,
                                            connections),
                     (31972, None))  # Random cell from column
示例#2
0
    def testGetBestMatchingCellFewestSegments(self):
        tm = TemporalMemory(columnDimensions=[2],
                            cellsPerColumn=2,
                            connectedPermanence=0.50,
                            minThreshold=1,
                            seed=42)

        connections = tm.connections
        connections.createSegment(0)
        connections.createSynapse(0, 3, 0.3)

        activeSynapsesForSegment = set([])

        for _ in range(100):
            # Never pick cell 0, always pick cell 1
            (cell, _) = tm.getBestMatchingCell(connections.cellsForColumn(0),
                                               activeSynapsesForSegment,
                                               connections)
            self.assertEqual(cell, 1)
  def testGetBestMatchingCellFewestSegments(self):
    tm = TemporalMemory(
      columnDimensions=[2],
      cellsPerColumn=2,
      connectedPermanence=0.50,
      minThreshold=1,
      seed=42
    )

    connections = tm.connections
    connections.createSegment(0)
    connections.createSynapse(0, 3, 0.3)

    activeSynapsesForSegment = set([])

    for _ in range(100):
      # Never pick cell 0, always pick cell 1
      (cell, _) = tm.getBestMatchingCell(connections.cellsForColumn(0),
                                         activeSynapsesForSegment,
                                         connections)
      self.assertEqual(cell, 1)