output_spike_train = np.hstack([ost + i * (T / 10) for i in range(20)]) # fix the evolution of specified neurons and force them to spike at with the specified patterns net.enforce_neurons(enf_nrns, [ input_spike_train1, input_spike_train2, input_spike_train3, output_spike_train ]) # make the connections from all the neurons to the output neuron plastic (able to learn) plastic_synapses = [] for i in range(N - 1): plastic_synapses.append((i, N - 1)) plot_synaptic_traces = deepcopy(plastic_synapses) net.set_plastic_synapses(plastic_synapses) net.run(int(T_steps * 1.5)) # remove all the plasticity net.set_plastic_synapses([]) enf_nrns = [0, 1, 2] net.enforce_neurons( enf_nrns, [input_spike_train1, input_spike_train2, input_spike_train3]) net.run(int(T_steps * 0.5)) # # # Plots # fig1 = plot_traces(net) # plt.show(block = True) # plt.close() fig2 = plot_spikes(net) plt.show(block=True)
from src.Network import Network from src.Neuron import IzhikevichNeuron from src.SpikeTrain import UniformSpikeTrain, PoissonSpikeTrain from src.Synapse import SynapseSTDP from src.plotting_functions import * from matplotlib import pyplot as plt neurons = [IzhikevichNeuron() for i in range(2)] dt = 0.1 T = 20000 # ms to run the network for T_steps = int(T / dt) # time steps to run the network for variables_to_monitor = ['v'] synapses = dict() synapses[0, 1] = SynapseSTDP(neurons[0], neurons[1]) net = Network(dt, neurons, synapses, variables_to_monitor) net.set_plastic_synapses(list_of_tuples=[(0, 1)]) spike_train_uniform = UniformSpikeTrain(T).generate(10) spike_train_poisson = PoissonSpikeTrain(T).generate(10) net.enforce_neurons(indices=[0, 1], spike_trains=[spike_train_uniform, spike_train_poisson]) # net.enforce_neurons(indices=[0], spike_trains=[spike_train_uniform]) net.run(T_steps) fig2 = plot_spikes_and_weights(net) plt.show(block=True)
newLine = [] for i in range(0, len(tokens)): newLine.append(float(tokens[i])) learnData.append(newLine) for line in lines[84:]: tokens = line.split(',') newLine = [] for i in range(0, len(tokens)): newLine.append(float(tokens[i])) testData.append(newLine) return (learnData, testData) if __name__ == '__main__': ''' P1.Build a system that approximates the quality of a concrete mixture based on the used ingredients. Input variables: 7 Output variables: 3 ''' learnData, testData = getData("C:\\_MyFiles\\_FMI\\Workspace\\AI\\Lab5\\files\\data.data") net = Network(7, 3, [4]) net.learn(LEARN_RATE, learnData) err = net.run(testData) err[0] = int(err[0]) err[1] = int(err[1]) err[2] = int(err[2]) print('\nSLUMP, FLOW, 28-day Compressive Strength = ' + str(err))