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()
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()