def __init__ (self, source): Synapse.__init__ (self, source, None, None) # Remove some unused member variables. del self.source, self.layer, self.target # The lock owner ;). Who`s got the right to change the inputs. self.lockOwner = None # The starting point of the synapse. self.startPoint = source # The ending point of the synapse. self.endPoint = None
def __init__(self, source): Synapse.__init__(self, source, None, None) # Remove some unused member variables. del self.source, self.layer, self.target # The lock owner ;). Who`s got the right to change the inputs. self.lockOwner = None # The starting point of the synapse. self.startPoint = source # The ending point of the synapse. self.endPoint = None
def synapseFired (self, Synapse): self.numberOfSynapsesFired += 1 if self.numberOfSynapsesFired <= self.numberOfInputs: prev = self.get_property ("value") self.set_property ("value", prev + Synapse.getValue ()) # When _all_ incoming synapses have fired, activate the neuron! if self.numberOfSynapsesFired == self.numberOfInputs: val = StepActivation.sigmoid (self.get_property ("value")) self.set_property ("value", val) self.emit ("activation")
def createSynapse (self, Layer, Neuron): layer_id = None neuron_id= Neuron.Id # The layer id if isinstance (Layer, int): layer_id = Layer else: layer_id = Layer._Id if layer_id not in self.synapses.keys (): self.synapses [layer_id] = dict () s = Synapse (self) s.connect ("input-updated", Neuron.synapseInputUpdated) s.connect ("weight-updated", Neuron.synapseWeightsUpdated) s.connect ("notify-src-connect", self.synapseConnectionEstablised) s.connect ("notify-target-connect", Neuron.synapseAddedAsTarget) s.connect ("notify-target-disconnect", Neuron.synapseConnectionDestroyed) s.connect ("fire", Neuron.synapseFired) s.connectTo (Layer, Neuron) if neuron_id not in self.synapses [layer_id].keys (): self.synapses [layer_id][neuron_id] = s self.numberOfSynapses += 1