Example #1
0
 def test_learn_synapse_connections(self):
     active = np.array([[1, 1], [1, 1]])
     input_vector = np.array([[1, 0], [0, 0]])
     p_inc = 0.1
     p_dec = 0.1
     part_deque = partial(RingBuffer, input_array=np.zeros(2), copy=True)
     activity = defaultdict(part_deque)
     overlap_sum = defaultdict(part_deque)
     min_activity = np.array([[1, 0], [0, 0]])
     boost = np.array([[1, 1], [1, 1]])
     b_inc = 1
     p_mult = 1
     columns, synapse_modified =\
         BSP.learn_synapse_connections(self.columns, active,
                                       input_vector, p_inc, p_dec,
                                       activity, overlap_sum,
                                       min_activity, boost, b_inc,
                                       p_mult)
     self.assertIsInstance(columns, np.ndarray)
     self.assertEqual(columns.shape, (2, 2, 2, 2))
     self.assertListEqual(columns.tolist(), [
                                             [
                                              [[0.1, 0.], [0., 0.]],
                                              [[0.1, 0.], [0., 0.]]
                                             ],
                                             [
                                              [[0.1, 0.], [0., 0.]],
                                              [[0.1, 0.], [0., 0.]]
                                             ]
                                            ])
     self.assertIsInstance(synapse_modified, types.BooleanType)
     self.assertFalse(synapse_modified)
Example #2
0
 def test_spatial_pooler(self,):
     images = np.zeros(shape=(10, 2, 2))
     shape = (2, 2, 2, 2)
     p_connect = 0.15
     connect_threshold = 0.2
     p_inc = 0.02
     p_dec = 0.02
     b_inc = 0.005
     p_mult = 0.01
     min_activity_threshold = 0.01
     min_overlap = 3,
     desired_activity_mult = 0.05
     max_iterations = 1000
     cols = BSP.spatial_pooler(images, shape, p_connect,
                               connect_threshold, p_inc,
                               p_dec, b_inc, p_mult,
                               min_activity_threshold, min_overlap,
                               desired_activity_mult,
                               max_iterations)
     self.assertIsInstance(cols, np.ndarray)
     self.assertEqual(cols.shape, shape)
     expr = ne.evaluate('0 <= cols')
     self.assertTrue((expr | np.isnan(cols)).all())
     expr = ne.evaluate('cols <= 1')
     self.assertTrue((expr | np.isnan(cols)).all())
Example #3
0
 def test_calculate_overlap(self):
     input_vector = np.array([[1, 0], [0, 0]])
     self.columns[0, 0, 0, 0] = 1
     min_overlap = 1
     connect_threshold = 0.1
     boost = np.array([[1, 1], [1, 1]])
     part_deque = partial(RingBuffer, input_array=np.zeros(2), copy=True)
     overlap_sum = defaultdict(part_deque)
     overlap, overlap_sum =\
         BSP.calculate_overlap(input_vector, self.columns, min_overlap,
                               connect_threshold, boost, overlap_sum)
     self.assertIsInstance(overlap, np.ndarray)
     self.assertEqual(overlap.shape, (2, 2))
     self.assertIsInstance(overlap_sum, defaultdict)
     self.assertListEqual(overlap.tolist(), [[1., 0.], [0., 0.]])
     self.assertIsInstance(overlap_sum[0, 0], RingBuffer)
     self.assertListEqual(list(overlap_sum[0, 0]), [0, 1])