Example #1
0
 def __init__(self):
     print "GenericANN: Constructor called"
     self.__layers = []
     self.__links = []
     self.__exec_order = []
     
     print "GenericANN: Begin read from script"
     io = ann_io()
     __ann_data = io.read()
     self.__hard_wired = __ann_data.get_hard_wired()
     # TODO read training data
     
     print "GenericANN: ", len(__ann_data.get_layers())
     
     random.seed()
     
     print "GenericANN: Initializing GenericANN"
     
     for ann_layer in __ann_data.get_layers():
         layer = Layer(ann_layer)
         self.__layers.append(layer)
         print "GenericANN: Added layer:"
         print "------------------------"
         layer.printout()
         print "------------------------"
     
     for ann_link in __ann_data.get_links():
         # Adding layers to links
         link = Link(ann_link, self.get_layers())
         self.__links.append(link)
         
         # Adding links to layers
         for layer in self.get_layers():
             if link.getPostLayer().get_name() == layer.get_name():
                 layer.add_link_in(link)
             elif link.getPreLayer().get_name() == layer.get_name():
                 layer.add_link_out(link)
         
         print "GenericANN: Adding link from: " + link.getPreLayer().get_name() + " to: " + \
                   link.getPostLayer().get_name()
                   
         if (ann_link.get_link_learn_rule() == RULE.OJA):
             link.setLearningRule(OjaLearning(ann_link.get_link_learn_rate()))
         elif (ann_link.get_link_learn_rule() == RULE.GENERAL):
             link.setLearningRule(GeneralHebbLearning(ann_link.get_link_learn_rate(), ann_link.get_link_learn_param()))
         elif (ann_link.get_link_learn_rule() == RULE.CLASSICAL):
             link.setLearningRule(ClassicalHebbLearning(ann_link.get_link_learn_rate()))
             
         if not link.isHardwired():
             link.connect()
         else:
             for layer in self.__layers:
                 layer.set_learning(False)
             for link in self.__links:
                 link.setLearningMode(False)
     
     self.__exec_order = __ann_data.get_exec_order()
Example #2
0
    def __init__(self):
        print "GenericANN: Constructor called"
        self.__layers = []
        self.__links = []
        self.__exec_order = []

        print "GenericANN: Begin read from script"
        io = ann_io()
        __ann_data = io.read()
        # TODO read training data

        print "GenericANN: ", len(__ann_data.get_layers())

        random.seed()

        print "GenericANN: Initializing GenericANN"

        for ann_layer in __ann_data.get_layers():
            layer = Layer(ann_layer)
            self.__layers.append(layer)
            print "GenericANN: Added layer:"
            print "------------------------"
            layer.printout()
            print "------------------------"

        for ann_link in __ann_data.get_links():
            # Adding layers to links
            link = Link(ann_link, self.get_layers())
            self.__links.append(link)

            # Adding links to layers
            for layer in self.get_layers():
                if link.getPostLayer().get_name() == layer.get_name():
                    layer.add_link_in(link)
                elif link.getPreLayer().get_name() == layer.get_name():
                    layer.add_link_out(link)

            print "GenericANN: Adding link from: " + link.getPreLayer().get_name() + " to: " + \
                      link.getPostLayer().get_name()

            if (ann_link.get_link_learn_rule() == RULE.OJA):
                link.setLearningRule(
                    OjaLearning(ann_link.get_link_learn_rate()))
            elif (ann_link.get_link_learn_rule() == RULE.GENERAL):
                link.setLearningRule(
                    GeneralHebbLearning(ann_link.get_link_learn_rate(),
                                        ann_link.get_link_learn_param()))
            elif (ann_link.get_link_learn_rule() == RULE.CLASSICAL):
                link.setLearningRule(
                    ClassicalHebbLearning(ann_link.get_link_learn_rate()))

            link.connect()

        self.__exec_order = __ann_data.get_exec_order()