Beispiel #1
0
class InstarNetwork(object):
    def __init__(self, input_num, output_num, unconditioned_input_num, function_name="hardlim", learning_rate=0.2):
        self.function_name = function_name
        self.input_num = input_num
        self.output_num = output_num
        self.learning_rate = learning_rate

        self.net = NeuronBuilder([self.input_num], [0], [self.output_num])
        self.net.connectTwoLayers("in", "out")
        self.net.setLayerFunction("out", self.function_name)
        self.net.setUnconditionedNeuronNum(unconditioned_input_num)

    def activate(self, input_list):
        self.net.setInputToInputLayer(input_list)
        output = self.net.getOutputFromLayer("out")
        return output

    def train(self, input_list):
        self.trainer = InstarTrainer(self.net, self.learning_rate)
        self.trainer.InstarTrainForOnce(input_list)

    def setLearningRate(self, learning_rate):
        self.learning_rate = learning_rate

    def returnNeuronBuilder(self):
        return self.net

    def setNeuronBuilder(self, net):
        self.net = net

    def showNetworkSimulation(self):
        self.net.showNetworkSimulation()
Beispiel #2
0
class OutstarNetwork(object):

    def __init__(self,input_num,unconditioned_input_num,function_name='satlins',learning_rate=0.2):
        self.function_name=function_name
        self.input_num=input_num
        self.output_num=unconditioned_input_num
        self.learning_rate=learning_rate
        
        self.net=NeuronBuilder([self.input_num],[0],[self.output_num],has_bias=False)
        for i in range(unconditioned_input_num):
            self.net.connectTwoNeurons('in'+str(i), 'out'+str(i))
        for i in range(input_num-unconditioned_input_num):
            for neuron in self.net.neuron_in_layer['out']:
                self.net.connectTwoNeurons('in'+str(i+unconditioned_input_num),neuron)
        # print self.net.neuron_to_neuron_weight
        # print self.net.layer_to_layer_weight
        self.net.setLayerFunction('out', self.function_name)
        self.net.setUnconditionedNeuronNum(unconditioned_input_num)
           
    def activate(self,input_list):
        self.net.setInputToInputLayer(input_list)
        output=self.net.getOutputFromLayer('out')
        return output
        
    def train(self,input_list):
        self.trainer=OutstarTrainer(self.net,self.learning_rate)
        self.trainer.OutstarTrainForOnce(input_list)
        
    def setLearningRate(self,learning_rate):
        self.learning_rate=learning_rate
        
    def returnNeuronBuilder(self):
        return self.net
    
    def setNeuronBuilder(self,net):
        self.net=net
        
    def showNetworkSimulation(self):
        self.net.showNetworkSimulation()
class SimpleAssociativeNetwork(object):

    def __init__(self,input_num,output_num,unconditioned_input_num,function_name='hardlim',learning_rate=0.2,decay_rate=0.1):
        self.function_name=function_name
        self.input_num=input_num
        self.output_num=output_num
        self.learning_rate=learning_rate
        self.decay_rate=decay_rate
        
        self.net=NeuronBuilder([self.input_num],[0],[self.output_num])
        self.net.connectTwoLayers('in', 'out')
        self.net.setLayerFunction('out', self.function_name)
        self.net.setUnconditionedNeuronNum(unconditioned_input_num)
        
           
    def activate(self,input_list):
        self.net.setInputToInputLayer(input_list)
        output=self.net.getOutputFromLayer('out')
        return output
        
    def train(self,input_list):
        self.trainer=HebbUnsupervisedTrainer(self.net,self.learning_rate,self.decay_rate)
        self.trainer.HebbTrainForOnce(input_list)
        
    def setLearningRate(self,learning_rate):
        self.learning_rate=learning_rate
        
    def setDecayRate(self,decay_rate):
        self.decay_rate=decay_rate
        
    def returnNeuronBuilder(self):
        return self.net
    
    def setNeuronBuilder(self,net):
        self.net=net
        
    def showNetworkSimulation(self):
        self.net.showNetworkSimulation()