mmdetection训练后评估指标,验证Loss

项目场景:

对mmdetection框架下训练好的log.json文件进行评估。


问题描述

使用框架底下自带的评估文件,不能对loss进行评估。也就是文件:tools/analysis_tools/analyze_logs.py


解决方案:

自己做了评估loss的代码,目前只能评估下图红色箭头标示类,其余可在mmdetection自带的analyze_logs.py文件评估。
在这里插入图片描述

代码如下:

import json
import matplotlib.pyplot as plt

# 初始化空列表以存储所有的数据
data = []

# 打开并逐行读取JSON文件
with open('E:/Deeplearning/ChangeDetection/Mmdetection/Mmdetection/loss-log/20240724_100019.log.json', 'r') as file:
    for line in file:
        # 解析每行的JSON数据
        try:
            entry = json.loads(line)
            data.append(entry)
        except json.JSONDecodeError as e:
            print(f"Error parsing line: {e}")

# 初始化
iterations = []
loss_cls_values = []

# 设置每个epoch的初始偏移值
epoch_offset = 0

# 记录当前epoch
current_epoch = 1

for entry in data:
    if 'iter' in entry and 'loss_cls' in entry:
        # 检查是否进入了新的epoch
        if entry['epoch'] > current_epoch:
            current_epoch = entry['epoch']
            epoch_offset += 700  # 700是每个epoch的迭代数
        # 计算当前iter的全局值
        global_iter = epoch_offset + entry['iter']
        iterations.append(global_iter)
        loss_cls_values.append(entry['loss_cls'])

# 绘制loss_cls的损失图
plt.figure(figsize=(10, 5))
plt.plot(iterations, loss_cls_values, label='loss_cls', color='blue')
plt.xlabel('Iterations')
plt.ylabel('Loss')
plt.title('Loss_cls over Iterations')
plt.legend()
plt.grid(True)
plt.show()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚拟指尖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值