示例#1
0
    def testReset(self):
        self.unionPooler = SimpleUnionPooler(numInputs=2048, historyLength=2)
        activeCells = [13, 42, 58, 198]
        outputVector = numpy.zeros(shape=(2048, ))
        for i in xrange(len(activeCells)):
            self.unionPooler.unionIntoArray(activeCells, outputVector)

        self.unionPooler.reset()
        self.assertEqual(len(self.unionPooler._activeCellsHistory), 0)
        self.assertEqual(sum(self.unionPooler._unionSDR), 0)
示例#2
0
    def testDimensionError(self):
        self.unionPooler = SimpleUnionPooler(numInputs=2048, historyLength=2)
        outputVector = numpy.zeros(shape=(2048, ))
        activeCells = [2049]
        with self.assertRaises(ValueError):
            self.unionPooler.unionIntoArray(activeCells, outputVector)

        activeCells = [1, 2, 3]
        outputVector = numpy.zeros(shape=(2047, ))
        with self.assertRaises(ValueError):
            self.unionPooler.unionIntoArray(activeCells, outputVector)
示例#3
0
    def testHistoryLength(self):
        self.unionPooler = SimpleUnionPooler(numInputs=2048, historyLength=2)
        activeCells = []
        activeCells.append([1, 3, 4])
        activeCells.append([101, 302, 405])
        activeCells.append([240, 3, 858])
        activeCellsUnion = [101, 302, 405, 240, 3, 858]

        outputVector = numpy.zeros(shape=(2048, ))
        for i in xrange(len(activeCells)):
            inputVector = numpy.zeros(shape=(2048, ))
            inputVector[numpy.array(activeCells[i])] = 1
            self.unionPooler.unionIntoArray(activeCells[i], outputVector)

        self.assertSetEqual(set(numpy.where(outputVector)[0]),
                            set(activeCellsUnion))
  def testUnionMinHistory(self):
    activeCells = []
    activeCells.append([1, 3, 4])
    activeCells.append([101, 302, 405])
    activeCellsUnion = [1, 3, 4, 101, 302, 405]

    unionPooler = SimpleUnionPooler(numInputs=2048, historyLength=10,
                                    minHistory= 2)

    # Should output all zeros
    outputVector = numpy.zeros(shape=(2048,))
    unionPooler.unionIntoArray(activeCells[0], outputVector)
    self.assertSetEqual(set(numpy.where(outputVector)[0]), set())
    self.assertAlmostEqual(unionPooler.getSparsity(), 0.0)

    # Should output activeCellsUnion
    outputVector = numpy.zeros(shape=(2048,))
    unionPooler.unionIntoArray(activeCells[1], outputVector)
    self.assertSetEqual(set(numpy.where(outputVector)[0]),
                        set(activeCellsUnion))
    self.assertAlmostEqual(unionPooler.getSparsity(), 6.0/2048.0)
示例#5
0
 def setUp(self):
     self.unionPooler = SimpleUnionPooler(numInputs=2048, historyLength=10)