def setUp(self):

        # enable, disable visual inspection of graph
        self.visual = False

        # Create And pattern of depth 2 /!\ Do not change those parameter for the test /!\
        self.n, self.ni, self.no, self.w0, self.t_mask = 100, 10, 2, 10, 5
        self.ap2 = ap2(self.ni, self.no, w=self.w0, seed=1234)
        self.ap2_fg = self.ap2.build_graph_pattern_init()

        # Create And pattern of depth 3
        self.ni, self.no, self.n_selected = 15, 2, 3
        self.ap3 = ap3(self.ni,
                       self.no,
                       n_selected=self.n_selected,
                       w=self.w0,
                       seed=1234)
        self.ap3_fg = self.ap3.build_graph_pattern_init()

        # Create simple pattern to test multi output
        self.sax_forward = vstack([csc_matrix(np.eye(4)) for _ in range(10)])
        self.sax_backward = lil_matrix(self.sax_forward.shape)
        self.sax_backward[:, :2] = 1
        self.p, self.r = np.array([1, 1, 2, 1]), np.array([1, 2, 1, 1])
        self.weight = 100

        # Create patterns to test functionality of forward and  backward patterns in server
        d_matrices = create_empty_matrices(self.sax_forward.shape[1],
                                           self.sax_backward.shape[1], 4)
        for i in range(4):
            d_matrices['Iw'][i, i], d_matrices['Ow'][
                i, i], d_matrices['Im'][:, :] = self.weight, 1, True

        self.fg = FiringGraph('test_server', np.ones(4), d_matrices, depth=2)
示例#2
0
    def setUp(self):

        # Create input and output signal
        self.sax_forward = csc_matrix([
            [1, 0, 0, 0, 0, 1],
            [1, 0, 1, 1, 1, 1],
            [0, 1, 0, 1, 1, 0],
            [0, 1, 0, 0, 1, 1],
            [1, 1, 1, 0, 0, 1],
            [1, 1, 0, 0, 1, 0],
            [1, 1, 0, 1, 0, 1],
            [1, 1, 0, 1, 1, 1],
        ])

        self.sax_backward = csc_matrix([[0], [0], [0], [0], [1], [1], [1],
                                        [1]])
        self.sax_test = csc_matrix([[1], [0], [1], [0], [1], [1], [1], [0]])

        # Create patterns to test functionality of forward and  backward patterns in server
        d_matrices = create_empty_matrices(self.sax_forward.shape[1],
                                           self.sax_backward.shape[1], 1)
        d_matrices['Iw'][3, 0], d_matrices['Ow'][0, 0] = 1, 1
        self.pattern = FiringGraph('test_server',
                                   np.ones(1),
                                   d_matrices,
                                   depth=2)

        # Create server
        self.server = ArrayServer(self.sax_forward,
                                  self.sax_backward,
                                  dtype_forward=int,
                                  dtype_backward=int,
                                  pattern_mask=self.pattern.copy())

        self.sax_expected = np.array([-1, 0, -1, 0, 1, 1, 1, 0])
        self.sax_expected_mask = np.array([-1, 0, 0, 0, 1, 1, 0, 0])