Esempio n. 1
0
    def test_calculate_latencies(self):
        dp1 = {
            "n_bits_in": 14,
            "n_bits_out": 10,
            "n_ones_in": 3,
            "n_ones_out": 3,
            "n_samples": 40
        }
        dp2 = {
            "n_bits_in": 8,
            "n_bits_out": 16,
            "n_ones_in": 2,
            "n_ones_out": 4,
            "n_samples": 50
        }
        net1 = NetworkBuilder(data_params=dp1)
        net2 = NetworkBuilder(data_params=dp2)

        pool = NetworkPool(net1.build())
        pool.add_network(net2.build())

        output = (
            stub_simulation(net1.mat_out, data_params=dp1, latency=20.0) +
            stub_simulation(net2.mat_out, data_params=dp2, latency=30.0))

        analysis_instances = pool.build_analysis(output)
        np.testing.assert_almost_equal(
            [20.0] * dp1["n_samples"],
            analysis_instances[0].calculate_latencies())
        np.testing.assert_almost_equal(
            [30.0] * dp2["n_samples"],
            analysis_instances[1].calculate_latencies())
Esempio n. 2
0
    def test_preserve_data_params(self):
        dp1 = {
            "n_bits_in": 14,
            "n_bits_out": 10,
            "n_ones_in": 3,
            "n_ones_out": 3,
            "n_samples": 40,
            "n_bits": -1,
            "algorithm": "unique"
        }
        dp2 = {
            "n_bits_in": 8,
            "n_bits_out": 16,
            "n_ones_in": 2,
            "n_ones_out": 4,
            "n_samples": 50,
            "n_bits": -1,
            "algorithm": "random"
        }
        net1 = NetworkBuilder(data_params=dp1)
        net2 = NetworkBuilder(data_params=dp2)

        pool = NetworkPool(net1.build())
        pool.add_network(net2.build())

        output = (stub_simulation(net1.mat_out, data_params=dp1) +
                  stub_simulation(net2.mat_out, data_params=dp2))

        analysis_instances = pool.build_analysis(output)
        self.assertEqual(len(analysis_instances), 2)
        self.assertEqual(dp1, analysis_instances[0]["data_params"])
        self.assertEqual(dp2, analysis_instances[1]["data_params"])
Esempio n. 3
0
    def test_calculate_latencies(self):
        dp1 = {
            "n_bits_in": 14,
            "n_bits_out": 10,
            "n_ones_in": 3,
            "n_ones_out": 3,
            "n_samples": 40
        }
        dp2 = {
            "n_bits_in": 8,
            "n_bits_out": 16,
            "n_ones_in": 2,
            "n_ones_out": 4,
            "n_samples": 50
        }
        net1 = NetworkBuilder(data_params=dp1)
        net2 = NetworkBuilder(data_params=dp2)

        pool = NetworkPool(net1.build())
        pool.add_network(net2.build())

        output = (stub_simulation(net1.mat_out, data_params=dp1, latency=20.0) +
                stub_simulation(net2.mat_out, data_params=dp2, latency=30.0))

        analysis_instances = pool.build_analysis(output)
        np.testing.assert_almost_equal(
                [20.0] * dp1["n_samples"],
                analysis_instances[0].calculate_latencies())
        np.testing.assert_almost_equal(
                [30.0] * dp2["n_samples"],
                analysis_instances[1].calculate_latencies())
Esempio n. 4
0
 def test_neuron_count(self):
     mat_in, mat_out = test_data()
     builder = NetworkBuilder(mat_in, mat_out)
     pool = NetworkPool()
     pool.add_network(builder.build())
     pool.add_network(builder.build(topology_params={"multiplicity": 3}))
     self.assertEqual(20, pool.neuron_count())
Esempio n. 5
0
    def test_preserve_data_params(self):
        dp1 = {
            "n_bits_in": 14,
            "n_bits_out": 10,
            "n_ones_in": 3,
            "n_ones_out": 3,
            "n_samples": 40,
            "n_bits": -1,
            "algorithm": "unique"
        }
        dp2 = {
            "n_bits_in": 8,
            "n_bits_out": 16,
            "n_ones_in": 2,
            "n_ones_out": 4,
            "n_samples": 50,
            "n_bits": -1,
            "algorithm": "random"
        }
        net1 = NetworkBuilder(data_params=dp1)
        net2 = NetworkBuilder(data_params=dp2)

        pool = NetworkPool(net1.build())
        pool.add_network(net2.build())

        output = (stub_simulation(net1.mat_out, data_params=dp1) +
                stub_simulation(net2.mat_out, data_params=dp2))

        analysis_instances = pool.build_analysis(output)
        self.assertEqual(len(analysis_instances), 2)
        self.assertEqual(dp1, analysis_instances[0]["data_params"])
        self.assertEqual(dp2, analysis_instances[1]["data_params"])
Esempio n. 6
0
 def test_neuron_count(self):
     mat_in, mat_out = test_data()
     builder = NetworkBuilder(mat_in, mat_out)
     pool = NetworkPool()
     pool.add_network(builder.build())
     pool.add_network(builder.build(topology_params={"multiplicity": 3}))
     self.assertEqual(20, pool.neuron_count())
Esempio n. 7
0
 def test_add_net_build_analysis(self):
     mat_in, mat_out = test_data()
     builder = NetworkBuilder(mat_in, mat_out)
     net = builder.build(input_params=[{}, {}])
     pool = NetworkPool()
     pool.add_network(net)
     analysis_instances = pool.build_analysis(time_mux_output_data)
     test_time_mux_res(self, analysis_instances)
Esempio n. 8
0
 def test_add_net_build_analysis(self):
     mat_in, mat_out = test_data()
     builder = NetworkBuilder(mat_in, mat_out)
     net = builder.build(input_params=[{}, {}])
     pool = NetworkPool()
     pool.add_network(net)
     analysis_instances = pool.build_analysis(time_mux_output_data)
     test_time_mux_res(self, analysis_instances)
Esempio n. 9
0
    def test_preserve_meta_data(self):
        ud1 = {"foo": "bar"}
        ud2 = {"foo2": "bar2"}
        net1 = NetworkBuilder(data_params={})
        net2 = NetworkBuilder(data_params={})
        pool = NetworkPool(net1.build(meta_data=ud1))
        pool.add_network(net2.build(meta_data=ud2))

        output = (stub_simulation(net1.mat_out) + stub_simulation(net2.mat_out))

        analysis_instances = pool.build_analysis(output)
        self.assertEqual(len(analysis_instances), 2)
        self.assertEqual(ud1, analysis_instances[0]["meta_data"])
        self.assertEqual(ud2, analysis_instances[1]["meta_data"])
Esempio n. 10
0
    def test_preserve_meta_data(self):
        ud1 = {"foo": "bar"}
        ud2 = {"foo2": "bar2"}
        net1 = NetworkBuilder(data_params={})
        net2 = NetworkBuilder(data_params={})
        pool = NetworkPool(net1.build(meta_data=ud1))
        pool.add_network(net2.build(meta_data=ud2))

        output = (stub_simulation(net1.mat_out) +
                  stub_simulation(net2.mat_out))

        analysis_instances = pool.build_analysis(output)
        self.assertEqual(len(analysis_instances), 2)
        self.assertEqual(ud1, analysis_instances[0]["meta_data"])
        self.assertEqual(ud2, analysis_instances[1]["meta_data"])