@@ -101,7 +101,7 @@ def dump_metadata_json(reader: GGUFReader, args: argparse.Namespace) -> None:
101
101
json .dump (result , sys .stdout )
102
102
103
103
104
- def markdownTableWithAlignmentSupport (header_map : list [dict [str , str ]], data : list [dict [str , Any ]]):
104
+ def markdown_table_with_alignment_support (header_map : list [dict [str , str ]], data : list [dict [str , Any ]]):
105
105
# JSON to Markdown table formatting: https://stackoverflow.com/a/72983854/2850957
106
106
107
107
# Alignment Utility Function
@@ -272,7 +272,7 @@ def dump_markdown_metadata(reader: GGUFReader, args: argparse.Namespace) -> None
272
272
{'key_name' :'value' , 'header_name' :'Value' , 'align' :'left' },
273
273
]
274
274
275
- markdown_content += markdownTableWithAlignmentSupport (kv_dump_table_header_map , kv_dump_table )
275
+ markdown_content += markdown_table_with_alignment_support (kv_dump_table_header_map , kv_dump_table )
276
276
277
277
markdown_content += "\n "
278
278
@@ -319,24 +319,35 @@ def dump_markdown_metadata(reader: GGUFReader, args: argparse.Namespace) -> None
319
319
group_percentage = group_elements / total_elements * 100
320
320
markdown_content += f"### <a name=\" { group .replace ('.' , '_' )} \" >{ translate_tensor_name (group )} Tensor Group : { element_count_rounded_notation (group_elements )} Elements</a>\n \n "
321
321
322
+ # Precalculate pretty shape column sizing for visual consistency
323
+ prettify_dimension_max_widths = {}
324
+ for tensor in tensors :
325
+ for i , dimension_size in enumerate (list (tensor .shape ) + [1 ] * (4 - len (tensor .shape ))):
326
+ if i in prettify_dimension_max_widths :
327
+ prettify_dimension_max_widths [i ] = max (prettify_dimension_max_widths [i ], len (str (dimension_size )))
328
+ else :
329
+ prettify_dimension_max_widths [i ] = len (str (dimension_size ))
330
+
331
+ # Generate Tensor Layer Table Content
322
332
tensor_dump_table = []
323
333
for tensor in tensors :
324
334
human_friendly_name = translate_tensor_name (tensor .name .replace (".weight" , ".(W)" ).replace (".bias" , ".(B)" ))
325
- prettydims = ' x ' .join ('{0:^5}' .format (d ) for d in list (tensor .shape ) + [1 ] * (4 - len (tensor .shape )))
326
- element_count_string = f"({ element_count_rounded_notation (tensor .n_elements ):>4} ) { tensor .n_elements :7} "
335
+ pretty_dimension = ' x ' .join (f'{ str (d ):^{prettify_dimension_max_widths [i ]}} ' for i , d in enumerate (list (tensor .shape ) + [1 ] * (4 - len (tensor .shape ))))
336
+ element_count_est = f"({ element_count_rounded_notation (tensor .n_elements ):>4} )"
337
+ element_count_string = f"{ element_count_est :>6} { tensor .n_elements :^8} "
327
338
type_name_string = f"{ tensor .tensor_type .name } "
328
- tensor_dump_table .append ({"t_id" :tensor_name_to_key [tensor .name ], "layer_name" :tensor .name , "human_layer_name" :human_friendly_name , "element_count" :element_count_string , "pretty_dims" : prettydims , "tensor_type" :type_name_string })
339
+ tensor_dump_table .append ({"t_id" :tensor_name_to_key [tensor .name ], "layer_name" :tensor .name , "human_layer_name" :human_friendly_name , "element_count" :element_count_string , "pretty_dimension" : pretty_dimension , "tensor_type" :type_name_string })
329
340
330
341
tensor_dump_table_header_map = [
331
342
{'key_name' :'t_id' , 'header_name' :'T_ID' , 'align' :'right' },
332
343
{'key_name' :'layer_name' , 'header_name' :'Tensor Layer Name' , 'align' :'left' },
333
344
{'key_name' :'human_layer_name' , 'header_name' :'Human Friendly Tensor Layer Name' , 'align' :'left' },
334
345
{'key_name' :'element_count' , 'header_name' :'Elements' , 'align' :'left' },
335
- {'key_name' :'pretty_dims' , 'header_name' :'Shape' , 'align' :'left' },
346
+ {'key_name' :'pretty_dimension' , 'header_name' :'Shape' , 'align' :'left' },
336
347
{'key_name' :'tensor_type' , 'header_name' :'Type' , 'align' :'left' },
337
348
]
338
349
339
- markdown_content += markdownTableWithAlignmentSupport (tensor_dump_table_header_map , tensor_dump_table )
350
+ markdown_content += markdown_table_with_alignment_support (tensor_dump_table_header_map , tensor_dump_table )
340
351
341
352
markdown_content += "\n "
342
353
markdown_content += f"- Total elements in { group } : ({ element_count_rounded_notation (group_elements ):>4} ) { group_elements } \n "
0 commit comments