我正在Python上做一个神经元项目。在上一篇文章中,我问如何让神经元相互激发。
电路成功。我创建了一个名为“肌肉”的新类,当接收到来自神经元的信号时,它会弯曲。
但是有一个很大的缺陷:当我激发连接到另一个神经元 N3 的两个神经元(例如 N1 和 N2)时,N3 不会汇总它从 N1 和 N2 接收到的信号。相反,N3 在不同的时间分别进行这些操作。 我怎样才能克服这个问题?
作为 juanpa.arrivillaga 得到了这个答案 推荐:
class Neuron:
def __init__(self,name,threshold=3):
self.name = name
self.threshold = threshold
self.in_signal = 0
self.out_signal = 0
self.connect_axon = []
self.connect_dendrite = []
def connect_to_neuron(self, neuron):
self.connect_dendrite.append(neuron)
neuron.connect_axon.append(self)
def fire(self, strength):
self.out_signal = strength
print('neuron',self.name,'fired with strength',self.out_signal)
def reset(self):
self.in_signal = 0
self.out_signal = 0
def update(self):
for neuron in self.connect_dendrite:
self.in_signal += neuron.out_signal
if self.in_signal >= self.threshold:
self.out_signal = self.in_signal
print('neuron',self.name,'fired with strength',self.out_signal)
class Brain:
def __init__(self):
self.neurons = []
def add_neuron(self, neuron):
self.neurons.append(neuron)
def update(self):
for neuron in self.neurons:
neuron.update()
for neuron in self.neurons:
neuron.reset()
n1 = Neuron('n1')
n2 = Neuron('n2')
n3 = Neuron('n3',threshold=5)
n3.connect_to_neuron(n1)
n3.connect_to_neuron(n2)
tiny_brain = Brain()
tiny_brain.add_neuron(n1)
tiny_brain.add_neuron(n2)
tiny_brain.add_neuron(n3)
n1.fire(4)
n2.fire(4)
tiny_brain.update()