(self, title: str = None, hide_layers_with_no_params: bool = False)
Print a summary table of the network structure.
Print a summary table of the network structure.
Print a summary table of the network structure .
def print_layers(self, title: str = None, hide_layers_with_no_params: bool = False) -> None:
        """Print a summary table of the network structure."""
        rows = [[title if title is not None else self.name, "Params", "OutputShape", "WeightShape"]]
        rows += [["---"] * 4]
        total_params = 0

        for layer_name, layer_output, layer_trainables in self.list_layers():
            num_params = sum(int(np.prod(var.shape.as_list())) for var in layer_trainables)
            weights = [var for var in layer_trainables if var.name.endswith("/weight:0")]
            weights.sort(key=lambda x: len(x.name))
            if len(weights) == 0 and len(layer_trainables) == 1:
                weights = layer_trainables
            total_params += num_params

            if not hide_layers_with_no_params or num_params != 0:
                num_params_str = str(num_params) if num_params > 0 else "-"
                output_shape_str = str(layer_output.shape)
                weight_shape_str = str(weights[0].shape) if len(weights) >= 1 else "-"
                rows += [[layer_name, num_params_str, output_shape_str, weight_shape_str]]

        rows += [["---"] * 4]
        rows += [["Total", str(total_params), "", ""]]

        widths = [max(len(cell) for cell in column) for column in zip(*rows)]
        print()
        for row in rows:
            print("  ".join(cell + " " * (width - len(cell)) for cell, width in zip(row, widths)))
        print()
def print_layers ( self , title : str = None , hide_layers_with_no_params : bool = False ) -> None : rows = [ [ title if title is not None else self . name , "Params" , "OutputShape" , "WeightShape" ] ] rows += [ [ "---" ] * 4 ] total_params = 0 for layer_name , layer_output , layer_trainables in self . list_layers ( ) : num_params = sum ( int ( np . prod ( var . shape . as_list ( ) ) ) for var in layer_trainables ) weights = [ var for var in layer_trainables if var . name . endswith ( "/weight:0" ) ] weights . sort ( key = lambda x : len ( x . name ) ) if len ( weights ) == 0 and len ( layer_trainables ) == 1 : weights = layer_trainables total_params += num_params if not hide_layers_with_no_params or num_params != 0 : num_params_str = str ( num_params ) if num_params > 0 else "-" output_shape_str = str ( layer_output . shape ) weight_shape_str = str ( weights [ 0 ] . shape ) if len ( weights ) >= 1 else "-" rows += [ [ layer_name , num_params_str , output_shape_str , weight_shape_str ] ] rows += [ [ "---" ] * 4 ] rows += [ [ "Total" , str ( total_params ) , "" , "" ] ] widths = [ max ( len ( cell ) for cell in column ) for column in zip ( * rows ) ] print ( ) for row in rows : print ( "  " . join ( cell + " " * ( width - len ( cell ) ) for cell , width in zip ( row , widths ) ) ) print ( )