def __init__(self, connection, **options): self.connection = clean_layers(connection) self.errors_in = [] self.errors_out = [] self.epoch = 0 self.train_epoch_time = None self.layers = list(self.connection) self.input_layer = self.layers[0] self.output_layer = self.layers[-1] self.train_layers = self.layers[:-1] # Setup initialized options super(BaseNetwork, self).__init__(**options) logs = self.logs self.setup_defaults() available_classes = [c.__name__ for c in self.__class__.__mro__] def classname_grouper(option): classname = option[1].class_name class_priority = -available_classes.index(classname) return (class_priority, classname) # Sort and group options by classes grouped_options = groupby(sorted(self.options.items(), key=classname_grouper), key=classname_grouper) if isinstance(self.connection, LayerConnection): logs.header("Network structure") logs.log("LAYERS", self.connection) # Just display in terminal all network options. logs.header("Network options") for (_, clsname), class_options in grouped_options: if not class_options: # When in some class we remove all available attributes # we just skip it. continue logs.simple("{}:".format(clsname)) for key, data in sorted(class_options): if key in options: logger = logs.log value = options[key] else: logger = logs.gray_log value = data.value logger("OPTION", "{} = {}".format(key, preformat_value(value))) logs.empty() self.init_layers() super(BaseNetwork, self).__init__()
def _repr_options(self): options = [] for option_name in self.options: option_value = getattr(self, option_name) option_value = preformat_value(option_value) option_repr = "{}={}".format(option_name, option_value) options.append(option_repr) return ', '.join(options)
def show_network_options(self, highlight_options=None): available_classes = [cls.__name__ for cls in self.__class__.__mro__] logs = self.logs if highlight_options is None: highlight_options = {} def classname_grouper(option): classname = option[1].class_name class_priority = -available_classes.index(classname) return (class_priority, classname) # Sort and group options by classes grouped_options = groupby( sorted(self.options.items(), key=classname_grouper), key=classname_grouper ) if isinstance(self.connection, LayerConnection): logs.header("Network structure") logs.log("LAYERS", self.connection) # Just display in terminal all network options. logs.header("Network options") for (_, clsname), class_options in grouped_options: if not class_options: # When in some class we remove all available attributes # we just skip it. continue logs.simple("{}:".format(clsname)) for key, data in sorted(class_options): if key in highlight_options: logger = logs.log value = highlight_options[key] else: logger = logs.gray_log value = data.value logger("OPTION", "{} = {}".format( key, preformat_value(value)) ) logs.empty()
def show_network_options(self, highlight_options=None): available_classes = [cls.__name__ for cls in self.__class__.__mro__] logs = self.logs if highlight_options is None: highlight_options = {} def classname_grouper(option): classname = option[1].class_name class_priority = -available_classes.index(classname) return (class_priority, classname) # Sort and group options by classes grouped_options = groupby(sorted(self.options.items(), key=classname_grouper), key=classname_grouper) if isinstance(self.connection, LayerConnection): logs.header("Network structure") logs.log("LAYERS", self.connection) # Just display in terminal all network options. logs.header("Network options") for (_, clsname), class_options in grouped_options: if not class_options: # When in some class we remove all available attributes # we just skip it. continue logs.simple("{}:".format(clsname)) for key, data in sorted(class_options): if key in highlight_options: logger = logs.log value = highlight_options[key] else: logger = logs.gray_log value = data.value logger("OPTION", "{} = {}".format(key, preformat_value(value))) logs.empty()
def __init__(self, connection, **options): self.connection = clean_layers(connection) self.errors_in = [] self.errors_out = [] self.epoch = 0 self.train_epoch_time = None self.layers = list(self.connection) self.input_layer = self.layers[0] self.output_layer = self.layers[-1] self.train_layers = self.layers[:-1] # Setup initialized options super(BaseNetwork, self).__init__(**options) logs = self.logs self.setup_defaults() available_classes = [c.__name__ for c in self.__class__.__mro__] def classname_grouper(option): classname = option[1].class_name class_priority = -available_classes.index(classname) return (class_priority, classname) # Sort and group options by classes grouped_options = groupby( sorted(self.options.items(), key=classname_grouper), key=classname_grouper ) if isinstance(self.connection, LayerConnection): logs.header("Network structure") logs.log("LAYERS", self.connection) # Just display in terminal all network options. logs.header("Network options") for (_, clsname), class_options in grouped_options: if not class_options: # When in some class we remove all available attributes # we just skip it. continue logs.simple("{}:".format(clsname)) for key, data in sorted(class_options): if key in options: logger = logs.log value = options[key] else: logger = logs.gray_log value = data.value logger("OPTION", "{} = {}".format( key, preformat_value(value)) ) logs.empty() self.init_layers() super(BaseNetwork, self).__init__()