| def sort_with_indices(num_list: list[float], reverse: bool = True) -> list[tuple[int, float]]: |
| """ |
| 将数字列表从大到小排序,并返回(原索引, 对应值)的列表 |
| |
| Args: |
| num_list: 待排序的数字列表 |
| |
| Returns: |
| 按值降序排列的(原索引, 值)元组列表 |
| |
| Example: |
| >>> lst = [3.2, 1.5, 4.8] |
| >>> sort_with_indices(lst) |
| [(2, 4.8), (0, 3.2), (1, 1.5)] |
| """ |
| |
| sorted_items = sorted(enumerate(num_list), key=lambda x: x[1], reverse=reverse) |
| return sorted_items |
|
|
| import json |
| import os |
| module_name = "mlp" |
| metric_dir = "/mnt/bn/life-mllm/users/cxr/quantization/quantization_metric/metrics" |
| |
| model_name = "Llama-3.1-8B" |
|
|
| sec_dirs = os.listdir(metric_dir) |
| file_paths = [os.path.join(metric_dir, model_name, f"{sec_dir}.json") for sec_dir in sec_dirs] |
| |
| for file_path in file_paths: |
| try: |
| with open(file_path, 'r', encoding='utf-8') as f: |
| data = json.load(f) |
|
|
| |
| |
| |
| |
| |
| sorted_items = sort_with_indices(data, reverse=True) |
| sorted_items = [a[0] for a in sorted_items] |
| print(f"{file_path}: ") |
| print(sorted_items) |
| print() |
| except: |
| print(f"error in {file_path}") |
| print() |