| import torch |
| import numpy as np |
| |
| pt_file_path = "/home/lab/LJ/wampee/ultralytics/yolov8n.pt" |
| model_data = torch.load(pt_file_path) |
|
|
| |
| if "state_dict" in model_data: |
| print("state_dict found in the file.") |
| state_dict = model_data["state_dict"] |
| else: |
| print("state_dict not found. Assuming the file is directly a state_dict.") |
| state_dict = model_data |
|
|
| i=0 |
| |
| |
| |
| |
| |
|
|
| train_args=state_dict['train_args'].items() |
|
|
|
|
| |
| task_mapping = { |
| 'detect': 0, |
| 'classify': 1, |
| 'segment': 2, |
| 'pose': 3, |
| 'track': 4, |
| 'unet': 5 |
| } |
|
|
| mode_mapping = { |
| 'train': 0, |
| 'val': 1, |
| 'test': 2, |
| 'export': 3, |
| 'infer': 4, |
| 'predict': 5, |
| 'deploy': 6 |
| } |
|
|
| |
| def convert_values(key, value): |
| if key == 'task': |
| return task_mapping.get(value, value) |
| elif key == 'mode': |
| return mode_mapping.get(value, value) |
| elif isinstance(value, bool): |
| return 0 if value else 1 |
| elif value is None: |
| return -1 |
| elif isinstance(value,str): |
| return -2 |
| else: |
| return value |
|
|
|
|
| |
| |
| items = dict(train_args) |
|
|
|
|
|
|
| |
|
|
| converted_items = {key: convert_values(key, value) for key, value in items.items()} |
| converted_items=dict(converted_items) |
|
|
|
|
|
|
| |
| converted_values = [value for key, value in converted_items.items()] |
| |
| |
|
|
| |
| |
| matrix_size = 10 * 11 |
| if len(converted_values) < matrix_size: |
| converted_values.extend([None] * (matrix_size - len(converted_values))) |
| else: |
| converted_values = converted_values[:matrix_size] |
|
|
| |
| matrix = np.array(converted_values).reshape(10, 11) |
|
|
| |
| print("\nConverted matrix (10x11):") |
| print(matrix) |