深度学习-代码集成并画出两张具有多模型的loss曲线和val loss曲线,pytorch.matplotlib

例如目前我有6个模型的loss和val loss, 我需要用代码集成并画出两张具有多模型的loss曲线和val loss曲线,我能提供6个模型的loss.txt和val loss.txt,总共12个txt文件我都存在这个位置

“C:xxxxxxxxxxxxxx” 我的6个模型 12个文件夹名字分别是Faster R-CNN loss.txt Faster R-CNN val loss.txt SSD loss.txt SSD val loss.txt YOLOv4 loss.txt YOLOv4 val loss.txt YOLOv4-tiny loss.txt YOLOv4-tiny val loss.txt yolov5s v6.0 loss.txt yolov5s v6.0 val loss.txt YOLOv5-LCBM loss.txt YOLOv5-LCBM val loss.txt 所以实际上Training Loss只需要六个曲线同样的Validation Loss也只需要六个曲线。

可以使用Python中的matplotlib库来画出这些曲线。首先,你需要将这些文本文件中的数据加载到程序中,然后使用matplotlib来绘制曲线。以下是一个简单的Python脚本,假设你的文件夹结构如下所示:
C:\Users\luo\Desktop\model loss
    ├── Faster R-CNN loss.txt
    ├── Faster R-CNN val loss.txt
    ├── SSD loss.txt
    ├── SSD val loss.txt
    ├── YOLOv4 loss.txt
    ├── YOLOv4 val loss.txt
    ├── YOLOv4-tiny loss.txt
    ├── YOLOv4-tiny val loss.txt
    ├── yolov5s v6.0 loss.txt
    ├── yolov5s v6.0 val loss.txt
    ├── YOLOv5-LCBM loss.txt
    └── YOLOv5-LCBM val loss.txt
使用下面的脚本:
 

import os
import matplotlib.pyplot as plt

def plot_loss(file_paths, model_names, save_path):
    plt.figure(figsize=(10, 6))
    for file_path, model_name in zip(file_paths, model_names):
        with open(file_path, 'r') as file:
            lines = file.readlines()
            epochs = list(range(1, len(lines)+1))
            loss_values = [float(line.strip()) for line in lines]
            plt.plot(epochs, loss_values, label=model_name)

    plt.title('Training Loss')
    plt.xlabel('Epoch')
    plt.ylabel('Loss')
    plt.legend()
    plt.savefig(os.path.join(save_path, 'training_loss.png'))
    plt.show()

def plot_val_loss(file_paths, model_names, save_path):
    plt.figure(figsize=(10, 6))
    for file_path, model_name in zip(file_paths, model_names):
        with open(file_path, 'r') as file:
            lines = file.readlines()
            epochs = list(range(1, len(lines)+1))
            loss_values = [float(line.strip()) for line in lines]
            plt.plot(epochs, loss_values, label=model_name)

    plt.title('Validation Loss')
    plt.xlabel('Epoch')
    plt.ylabel('Loss')
    plt.legend()
    plt.savefig(os.path.join(save_path, 'validation_loss.png'))
    plt.show()

if __name__ == '__main__':
    folder_path = r'C:\xxxxxxxxxxxxx'(更改自己的文件地址)
    training_loss_files = [
        'Faster R-CNN loss.txt',
        'SSD loss.txt',
        'YOLOv4 loss.txt',
        'YOLOv4-tiny loss.txt',
        'yolov5s v6.0 loss.txt',
        'YOLOv5-LCBM loss.txt',
    ]

    val_loss_files = [
        'Faster R-CNN val loss.txt',
        'SSD val loss.txt',
        'YOLOv4 val loss.txt',
        'YOLOv4-tiny val loss.txt',
        'yolov5s v6.0 val loss.txt',
        'YOLOv5-LCBM val loss.txt',
    ]

    training_loss_paths = [os.path.join(folder_path, file) for file in training_loss_files]
    val_loss_paths = [os.path.join(folder_path, file) for file in val_loss_files]

    model_names = [
        'Faster R-CNN',
        'SSD',
        'YOLOv4',
        'YOLOv4-tiny',
        'yolov5s v6.0',
        'YOLOv5-LCBM',
    ]

    plot_loss(training_loss_paths, model_names, folder_path)
    plot_val_loss(val_loss_paths, model_names, folder_path)
 

虽然说这样子操作麻烦一些但能生成出你想要的多模型比对图!!!谢谢!!,好用的话点个赞!

  • 18
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值