将模型训练的结果绘制在一个图上

import os

import matplotlib.pyplot as plt
import pandas as pd

if __name__ == '__main__':
    # 模型路径
    root_path = r'D:\lg\BaiduSyncdisk\project\person_code\yolov8\runs\train\安全帽'
    # 图保存路径
    output_path = r'./output/plot_results_csv'
    # 需要绘制的模型
    lst_results_csv = ['yolov8s', 'yolov8s-attention-BAM', 'yolov8s-attention-CA', 'yolov8s-attention-CBAM', 'yolov8s-attention-ECA',
                       'yolov8s-attention-SE',
                       # 主干
                       'yolov8s-backbone-efficientnet_b0', 'yolov8s-backbone-mobilenetv3_small_050',
                       'yolov8s-backbone-mobilenetv3_small_100', 'yolov8s-backbone-renset18', 'yolov8s-backbone-renset50']
    # 需要绘制的指标
    lst_metrics = ['precision', 'recall', 'mAP@0.5', 'mAP50-95']
    # 各个指标同csv文件之间的索引对应关系
    dict_metrics_v5v8 = {'train/box_loss': 1, 'train/cls_loss': 2, 'train/dfl_loss': 3, 'precision': 4,
             'recall': 5, 'mAP@0.5': 6, 'mAP50-95': 7, 'val/box_loss': 8,
             'val/cls_loss': 9, 'val/dfl_loss': 10, 'lr/pg0': 11, 'lr/pg1': 12, 'lr/pg2': 13}

    # 绘制
    for metrics in lst_metrics:
        for modelname in lst_results_csv:
            res_path = os.path.join(root_path, modelname, 'results.csv')
            ext = res_path.split('.')[-1]
            # 适用yolov5、yolov8
            data = pd.read_csv(res_path, usecols=[dict_metrics_v5v8[metrics]]).values.ravel()
            x = range(len(data))
            plt.plot(x, data, label=modelname, linewidth='2')   # 线条粗细设为1

        # 添加x轴和y轴标签
        plt.xlabel('Epochs')
        plt.ylabel(metrics)
        plt.legend()
        plt.grid()
        # 显示图像
        plt.savefig(os.path.join(output_path, metrics + '.png'), dpi=900)   # dpi可设为300/600/900,表示存为更高清的矢量图
        plt.show()


在这里插入图片描述

GitHub 加速计划 / yo / yolov5
49.34 K
16.02 K
下载
yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。
最近提交(Master分支:2 个月前 )
79b7336f * Update Integrations table Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README.zh-CN.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> --------- Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> 15 小时前
94a62456 * fix: quad training * fix: quad training in segmentation 2 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐