Python 中神经元同时放电

问题描述 投票:0回答:1

我正在Python上做一个神经元项目。在上一篇文章中,我问如何让神经元相互激发。

电路成功。我创建了一个名为“肌肉”的新类,当接收到来自神经元的信号时,它会弯曲。

但是有一个很大的缺陷:当我激发连接到另一个神经元 N3 的两个神经元(例如 N1 和 N2)时,N3 不会汇总它从 N1 和 N2 接收到的信号。相反,N3 在不同的时间分别进行这些操作。 我怎样才能克服这个问题?

python python-3.x class
1个回答
1
投票
https://reddit.com/r/learnpython

作为 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()
    
© www.soinside.com 2019 - 2024. All rights reserved.