Beispiel #1
0
 def getTheInputToOneNeuron(self,neuron_key):
     from functions.from_function_fire_output import fireForOneValue
     if neuron_key.find('in')!=-1:
         return self.get_output_from_input_layer[neuron_key]
     else:
         input_to_neuron=None
         for keys in self.neuron_to_neuron_weight:
             target_neuron=keys[keys.find('to_')+3:]
             from_neuron=keys[:keys.find('_to')]
             if target_neuron==neuron_key and self.neuron_to_neuron_weight[keys]!=None:
                 #recursion
                 if input_to_neuron==None:
                     input_to_neuron=0
                 input_to_neuron+=self.getInputToNeuronFromTwoConnectedNeurons(from_neuron, target_neuron,self.getOutputFromOneNeuron(from_neuron))
         if self.has_bias:
             if input_to_neuron!=None:
                 input_to_neuron+=self.bias_to_neuron[neuron_key]
             else:
                 pass
         #print output_from_neuron_key
         #print input_to_neuron
         output=fireForOneValue('purelin',input_to_neuron)
         return output
Beispiel #2
0
 def getOutputFromOneNeuron(self,output_from_neuron_key):
     from functions.from_function_fire_output import fireForOneValue
     from functions.functions import compet
     if output_from_neuron_key.find('in')!=-1:
         return self.get_output_from_input_layer[output_from_neuron_key]
     else:
         input_to_neuron=None
         for keys in self.neuron_to_neuron_weight:
             target_neuron=keys[keys.find('to_')+3:]
             from_neuron=keys[:keys.find('_to')]
             if target_neuron==output_from_neuron_key and self.neuron_to_neuron_weight[keys]!=None:
                 #recursion
                 if input_to_neuron==None:
                     input_to_neuron=0
                 input_to_neuron+=self.getInputToNeuronFromTwoConnectedNeurons(from_neuron, target_neuron,self.getOutputFromOneNeuron(from_neuron))
         if self.has_bias:
             if input_to_neuron!=None:
                 input_to_neuron+=self.bias_to_neuron[output_from_neuron_key]
             else:
                 pass
         #print output_from_neuron_key
         #print input_to_neuron
         if self.neuron_function[output_from_neuron_key]=='compet':
             output=compet(output_from_neuron_key,self)
         #      if auto_train_competitive_neuron:
         #          from pyneuron.trainer.Kohonen import KohonenTrainer
         #        t=KohonenTrainer(self)
         #        if output_from_neuron_key.find('out')!=-1:
         #            competitive_layer_key='out'
         #        elif output_from_neuron_key.find('hid')!=-1:
         #            competitive_layer_key=output_from_neuron_key[:output_from_neuron_key.find('_')]
         #        else:
         #            print("competitive layer key error")
         #        t.KohonenTrainForWinnerNeuron(self.input_list_to_input_layer, competitive_layer_key)
         else:
             output=fireForOneValue(self.neuron_function[output_from_neuron_key],input_to_neuron)
         return output