|
14 | 14 | if "NO_LOCAL_GGUF" not in os.environ and (Path(__file__).parent.parent.parent / 'gguf-py').exists():
|
15 | 15 | sys.path.insert(0, str(Path(__file__).parent.parent))
|
16 | 16 |
|
17 |
| -from gguf import GGUFReader, GGUFValueType # noqa: E402 |
| 17 | +from gguf import GGUFReader, GGUFValueType, ReaderTensor # noqa: E402 |
18 | 18 |
|
19 | 19 | logger = logging.getLogger("gguf-dump")
|
20 | 20 |
|
@@ -319,22 +319,23 @@ 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 |
| 322 | + # Precalculate column sizing for visual consistency |
| 323 | + prettify_element_est_count_size: int = 1 |
| 324 | + prettify_element_count_size: int = 1 |
323 | 325 | prettify_dimension_max_widths: dict[int, int] = {}
|
324 | 326 | for tensor in tensors:
|
| 327 | + prettify_element_est_count_size = max(prettify_element_est_count_size, len(str(element_count_rounded_notation(tensor.n_elements)))) |
| 328 | + prettify_element_count_size = max(prettify_element_count_size, len(str(tensor.n_elements))) |
325 | 329 | 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 | + prettify_dimension_max_widths[i] = max(prettify_dimension_max_widths.get(i,1), len(str(dimension_size))) |
330 | 331 |
|
331 | 332 | # Generate Tensor Layer Table Content
|
332 | 333 | tensor_dump_table: list[dict[str, str | int]] = []
|
333 | 334 | for tensor in tensors:
|
334 | 335 | human_friendly_name = translate_tensor_name(tensor.name.replace(".weight", ".(W)").replace(".bias", ".(B)"))
|
335 | 336 | 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):>5})" |
337 |
| - element_count_string = f"{element_count_est} {tensor.n_elements:>8}" |
| 337 | + element_count_est = f"({element_count_rounded_notation(tensor.n_elements):>{prettify_element_est_count_size}})" |
| 338 | + element_count_string = f"{element_count_est} {tensor.n_elements:>{prettify_element_count_size}}" |
338 | 339 | type_name_string = f"{tensor.tensor_type.name}"
|
339 | 340 | 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})
|
340 | 341 |
|
|
0 commit comments