clearml/examples/reporting/model_reporting_plots.py

63 lines
1.8 KiB
Python
Raw Normal View History

2023-03-23 17:08:40 +00:00
# ClearML - Example of manual model reporting
from clearml import Task, OutputModel
from clearml.utilities.plotly_reporter import SeriesInfo
import pandas as pd
import numpy as np
# Connecting ClearML with the current process,
task = Task.init(project_name="examples", task_name="Model reporting plots example")
# Create output model and connect it to the task
output_model = OutputModel(task=task)
# Optional: add labels to the model, so we do not forget
labels = {"background": 0, "cat": 1, "dog": 2}
output_model.update_labels(labels)
# Register an already existing Model file somewhere
model_url = "https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5x6.pt"
output_model.update_weights(register_uri=model_url)
output_model.report_scalar("Reported Metrics", "Val - mAP@50", 72.7, 0)
output_model.report_single_value("Total epochs", 8)
df = pd.DataFrame(
{
"Model": ["YOLOv5n", "YOLOv5s", "YOLOv5m6", "YOLOv5x6"],
"size (pixels)": [640, 640, 1280, 1280],
"Val - mAP@50-95": [28.0, 37.4, 51.3, 55.0],
"CPU Speed b1 (ms)": [45, 98, 887, 3136],
}
)
output_model.report_table(
title="Summary Table", series="Comparison", iteration=0, table_plot=df
)
output_model.report_line_plot(
title="Accuracy",
series=[
SeriesInfo(
name="Validation",
data=np.array(
[
[0, 0.3],
[1, 0.55],
[2, 0.7],
[3, 0.77],
[4, 0.8],
[5, 0.816],
[6, 0.822],
[7, 0.829],
]
),
)
],
xaxis="Iteration",
yaxis="Validation Accuracy",
)
# Or upload a local model file to be later used
# output_model.update_weights(weights_filename="/path/to/file.onnx")
print("Model registration completed")