示例#1
0
    def run(self):
        """
        Run stuff and save stuff.

        :return:
        """

        out_dir = "out_directories"
        name = "test1.avi"
        out_path = os.path.abspath(os.path.join(out_dir, name))

        self.make_temp_directory(out_dir)

        self.ani.run(out_path, 10, 10)

        self.estmd.open_movie(out_path)
        self.estmd.run(by_frame=True)
        self.estmd.run(by_frame=True)
        frame_array = self.estmd.create_list_of_arrays()
        n = len(frame_array)
        for i in range(n):
            frame_array[i] = {'frame': frame_array[i].flatten()}

        self.cstmd.input = frame_array
        self.cstmd.spike_trains = cstmd.run()[1]

        # Adding simulation

        sim = Simulation("Test", True)

        sim.spike_trains = self.cstmd.spike_trains
        sim.start_positions = 0
        sim.pattern_duration = self.cstmd.duration
        sim.num_afferents = self.cstmd.spike_trains.shape[0]
        sim.duration = self.cstmd.spike_trains.shape[1]
        sim.sampling_interval = math.ceil(self.cstmd.duration / 5)

        n1 = sim.add_neuron(0.03125, .95, 300)
        n2 = sim.add_neuron(0.03125, 0.91, 125)
        n3 = sim.add_neuron(0.03125, 0.91, 125)
        n1.connect(n2)
        n1.connect(n3)
        n2.connect(n3)

        sim.run()

        # Adding ActionSelection

        pattern_input = []
        for neuron in sim.neurons:
            pattern_input.append(neuron.spike_times)

        print "================================"
        print pattern_input
        print "================================"

        a_s = ActionSelection(pattern_input=pattern_input,
                              pattern_duration=self.ani.total_frames,
                              animation=self.ani)
        a_s.run(show_plots=False)
示例#2
0
    def test_general_test(self):
        """
        One mothafacka test to rule them all.

        :return:
        """

        sim = Simulation()
        sim.load_file("sample")
        n1 = sim.add_neuron(0.03125, .95, 300)
        sim.run()
        sim.plot_weight_distributions()
        sim.plot_membrane_potential()
示例#3
0
    def test_general_test(self):
        """
        One mothafacka test to rule them all.

        :return:
        """

        sim = Simulation()
        sim.load_file("sample")
        n1 = sim.add_neuron(0.03125, .95, 300)
        sim.run()
        sim.plot_weight_distributions()
        sim.plot_membrane_potential()
示例#4
0
    def run_simulation(self,
                       sample,
                       cursor,
                       num_neurons,
                       description,
                       a_plus,
                       a_ratio,
                       theta,
                       weights,
                       training,
                       return_object=False):

        sim = Simulation(description, training)

        sim.load_sample(sample, cursor)

        # Add the post-synaptic neurons and connect them.
        neurons = []
        for i in range(num_neurons):
            if weights is not None:
                weight = weights[i]
            else:
                weight = None
            n = sim.add_neuron(a_plus, a_ratio, theta, weight)
            for neuron in neurons:
                n.connect(neuron)
            neurons.append(n)

        sim.run()

        # Allow for simulations run on generated samples.
        if 'animation_id' not in sample:
            sample['animation_id'] = None

        if 'estmd_id' not in sample:
            sample['estmd_id'] = None

        _id = self.save(sim,
                        sample['animation_id'],
                        sample['estmd_id'],
                        sample['_id'])
        return _id
示例#5
0
    def run_simulation(self,
                       sample,
                       cursor,
                       num_neurons,
                       description,
                       a_plus,
                       a_ratio,
                       theta,
                       weights,
                       training,
                       return_object=False):

        sim = Simulation(description, training)

        sim.load_sample(sample, cursor)

        # Add the post-synaptic neurons and connect them.
        neurons = []
        for i in range(num_neurons):
            if weights is not None:
                weight = weights[i]
            else:
                weight = None
            n = sim.add_neuron(a_plus, a_ratio, theta, weight)
            for neuron in neurons:
                n.connect(neuron)
            neurons.append(n)

        sim.run()

        # Allow for simulations run on generated samples.
        if 'animation_id' not in sample:
            sample['animation_id'] = None

        if 'estmd_id' not in sample:
            sample['estmd_id'] = None

        _id = self.save(sim, sample['animation_id'], sample['estmd_id'],
                        sample['_id'])
        return _id