Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STEP_FUNCTION_NEURON = 1
- SIGMOID_FUNCTION_NEURON = 2
- #layers of neurons have to be added in order from input layer to output layer
- neuron_count = 0
- class StepNeuron():
- def __init__(self):
- global neuron_count
- self.inputs = []
- self.outputs = []
- self.type = STEP_FUNCTION_NEURON
- self.activation = 1.0
- neuron_count +=1
- self.number = neuron_count
- print 'created neuron #',self.number
- def fire(self):
- print 'Neuron #%d fired' % self.number
- for synapse in self.outputs:
- synapse.activated = True
- def check_potential(self):
- activation = 0.0
- for synapse in self.inputs:
- if synapse.activated == True:
- synapse.activated = False
- activation += synapse.weight
- if activation >= self.activation:
- self.fire()
- class Input():
- def __init__(self):
- self.type = STEP_FUNCTION_NEURON
- self.outputs = []
- self.activation = False
- def fire(self):
- print 'input fired'
- for synapse in self.outputs:
- synapse.activated = True
- class Synapse():
- def __init__(self,fromneuron,toneuron,weight):
- self.fromneuron = fromneuron
- fromneuron.outputs += [self]
- self.toneuron = toneuron
- toneuron.inputs += [self]
- self.weight = weight
- self.activated = False
- #input layer
- i1 = Input()
- i2 = Input()
- #layer 1
- n1 = StepNeuron()
- n2 = StepNeuron()
- n3 = StepNeuron()
- n4 = StepNeuron()
- #layer 2
- n5 = StepNeuron()
- n6 = StepNeuron()
- neuron_list=[n1,n2,n3,n4,n5,n6]
- #synapse leaving i1
- s1 = Synapse(i1,n1,1.0)
- s2 = Synapse(i1,n2,1.0)
- s3 = Synapse(i1,n3,1.0)
- s4 = Synapse(i1,n4,1.0)
- #synapse leaving i2
- s1 = Synapse(i2,n1,1.0)
- s2 = Synapse(i2,n2,1.0)
- s3 = Synapse(i2,n3,1.0)
- s4 = Synapse(i2,n4,1.0)
- #synapse leaving n1
- s5 = Synapse(n1,n5,1.0)
- s6 = Synapse(n1,n6,1.0)
- #synapse leaving n2
- s5 = Synapse(n2,n5,1.0)
- s6 = Synapse(n2,n6,1.0)
- #synapse leaving n3
- s5 = Synapse(n3,n5,1.0)
- s6 = Synapse(n3,n6,1.0)
- #synapse leaving n4
- s5 = Synapse(n4,n5,1.0)
- s6 = Synapse(n4,n6,1.0)
- i1.fire()
- for neuron in neuron_list:
- neuron.check_potential()
- for neuron in neuron_list:
- neuron.check_potential()
- i2.fire()
- for neuron in neuron_list:
- neuron.check_potential()
- for neuron in neuron_list:
- neuron.check_potential()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement