在 Python 中同时放电的神经元
Neurons firing simultaneously in Python
我正在 Python 上做一个神经元项目。
在之前的 post 中,我询问了如何让神经元相互激发。我用我爸爸的帐户 post,但我也只有我问了这个问题。我把所有的账户都写上了我的名字:|
如果还没有,请阅读 。
电路成功。我制作了一个名为“肌肉”的新 class,它在接收到来自神经元的信号时会弯曲。
但是有一个很大的缺陷:当我激活两个神经元,比如 N1 和 N2,它们连接到另一个神经元 N3,那么 N3 不会将它接收到的信号加起来 both N1 和 N2。相反,N3 在不同的时间分别进行它们。
我怎样才能克服这个问题?
我从 reddit 得到了这个答案。com/r/learnpython 正如你所推荐的。谢谢!
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()
我正在 Python 上做一个神经元项目。
在之前的 post 中,我询问了如何让神经元相互激发。我用我爸爸的帐户 post,但我也只有我问了这个问题。我把所有的账户都写上了我的名字:|
如果还没有,请阅读
电路成功。我制作了一个名为“肌肉”的新 class,它在接收到来自神经元的信号时会弯曲。
但是有一个很大的缺陷:当我激活两个神经元,比如 N1 和 N2,它们连接到另一个神经元 N3,那么 N3 不会将它接收到的信号加起来 both N1 和 N2。相反,N3 在不同的时间分别进行它们。
我怎样才能克服这个问题?
我从 reddit 得到了这个答案。com/r/learnpython 正如你所推荐的。谢谢!
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()