文章内容:如何在YOLOX官网代码中绘制AP图与损失曲线
环境:pytorch1.8
注意:只能利用运行结果”YOLOX_outputs/outputs/train_log.txt“文件绘制
图的格式:自己可以进一步修改,已经是新罗马字体
代码如下
1、绘制AP图
使用:在YOLOX-main中创建AP.py文件即可
代码修改:文件路径+epoch次数(默认每次epoch评估)

import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
import os
import numpy as npfi_1 = open('YOLOX_outputs/outputs/train_log.txt','r')#,encoding='utf-8')  # ################################ 1、修改路径
epoch_nums = 80  # ###################### 2、修改对应自己的训练总epoch数(对应下面x坐标)lines = fi_1.readlines()list_AP = []
list_AP50 = []
list_AP75 = []
list_APM = []
list_APL = []
list_AR100 = []for line in lines:if 'Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ]' in line:# print(line[-6:])list_AP.append(float(line[-6:]))elif 'Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ]' in line:# print(line[-6:])list_AP50.append(float(line[-6:]))elif 'Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ]' in line:# print(line[-6:])list_AP75.append(float(line[-6:]))elif 'Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ]' in line:# print(line[-6:])list_APM.append(float(line[-6:]))elif 'Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ]' in line:# print(line[-6:])list_APL.append(float(line[-6:]))elif 'Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ]' in line:# print(line[-6:])list_AR100.append(float(line[-6:]))# print(list_AP)
# print(list_AP50)
# print(list_AP75)
# print(list_APM)
# print(list_APL)
# print(list_AR100)
plt.rc('font', family='Times New Roman', size=13)  # 全局中英文为字体“罗马字体”
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'x = np.arange(0, epoch_nums, 1) ######################################### 对应自己epoch
plt.plot(x, list_AP, label="AP(IOU=0.5:0.95)")
#plt.plot(x, list_AP50, label="IOU=0.5")
plt.plot(x, list_AP75, label="AP(IOU=0.75)")
#plt.plot(x, list_APM, label="medium")
plt.plot(x, list_APL, label="AP(Large)")
plt.plot(x, list_AR100, label="AR(maxDets=100)")plt.xlabel("Epoch")
plt.xlim(0, epoch_nums) #################################################### 同上 x_major_locator = MultipleLocator(10)  # 把x轴的刻度间隔设置为10,并存在变量里 ############################### 设置坐标轴间隔
ax = plt.gca()
ax.xaxis.set_major_locator(x_major_locator)plt.grid(True)
plt.legend(loc="lower right")
plt.show()

效果如下

2、绘制LOSS曲线
使用:在YOLOX-main中创建LOSS.py文件即可
代码修改:文件路径+iters_num次数(需要自己估计下)

import matplotlib.pyplot as plt
import os
import numpy as npfi_1 = open('YOLOX_outputs/outputs/train_log.txt','r',encoding='utf-8')  ####################### 1、读取路径
iters_num = 0 # 初始化为0lines = fi_1.readlines()list_loss = []for line in lines:if 'total_loss' in line:iters_num += 1  # 每得到一个损失值,+1#print(line)line = line.split('total_loss: ')[-1].split(', iou_loss:')[0]list_loss.append(float(line))#print(line)#break
print(len(list_loss))plt.rc('font', family='Times New Roman', size=13)  # 全局中英文为字体“罗马字体”
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'iters_num *= 10 # 乘以10是对应txt中每10步输出一次
x = np.arange(0, iters_num, 10)  ################################ 自己估计下坐标轴x,这里10是源代码默认iter=10输出一次loss
plt.plot(x, list_loss, label="Total Loss")plt.grid(True)
plt.xlabel("Steps")
plt.ylabel("Loss")
#plt.ylim(2.0, 10.0)
plt.legend(loc="uper right")
#plt.annotate("Loss", (-2,10), xycoords='data',xytext=(-2,10),fontsize=15)
plt.show()

效果如下:

YOLOX之绘制AP图与损失曲线相关推荐

  1. 【MATLAB】根据已有数据绘制Bode图、时域曲线等(进阶版)

    文章目录 前期教程 前言 读取数据 方法一:按行读取 方法二:按列读取 设置figure属性 自定义横纵坐标刻度 使横坐标按对数刻度显示,即Bode图的形式 去掉复制的图片的空白边距 在同一个figu ...

  2. 用matlab绘制P三曲线,知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线...

    导航:网站首页 > 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画 ...

  3. matlab绘制那奎斯特曲线和bode图

    绘制 的波特图 numG=1;denG=[1 2 1];sysG=tf(numG,denG);bode(sysG); 绘制   的那奎斯特曲线 numG=1; denG=[1 2 1]; sysG=t ...

  4. python绘制分形图基础_Python 绘制分形图(曼德勃罗集、分形树叶、科赫曲线、分形龙、谢尔宾斯基三角等)附代码...

    1. 曼德勃罗集 import numpy as np import pylab as pl import time from matplotlib import cm def iter_point( ...

  5. origin 多曲线绘制填充图,阴影图

    在写论文时会遇到多个曲线绘制阴影图的问题,我查了很多教程,没有解决问题,有个博主的标题比较类似,Origin | 填充面积图 | 绘制多曲线填充图_跳动的喵尾巴的博客-CSDN博客_origin填充指 ...

  6. python画曲线图例-python使用matplotlib绘制折线图教程

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  7. gd动态曲线 php_php中用GD绘制折线图

    1 ClassChart{2 private $image; //定义图像 3 private $title; //定义标题 4 private $ydata; //定义Y轴数据 5 private ...

  8. python科赫曲线绘制正方形_Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图...

    目录 Python数据处理从零开始----第四章(可视化)①③多变量绘图 Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图 seaborn.heatmapHeat ...

  9. 带着canvas去流浪系列之二 绘制折线图

    [摘要] 用canvasAPI实现echarts简易图表 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 任务说明 使用原生canvasAPI绘制 ...

最新文章

  1. Linux USB 驱动开发(一)—— USB设备基础概念
  2. 缓冲区溢出以及缓冲区溢出攻击
  3. aspects to consider for a recommendation letter
  4. centos7离线安装tengine所需依赖
  5. 数据库知识:SQLServer变量相关知识介绍
  6. WPF开发的实用小工具 - 快捷悬浮菜单
  7. linux c之gcc编译出现error:lvalue required as unary ‘‘ operand解决办法
  8. 到无限(溪流)和超越!
  9. 记一次Git pull之后Permission denied的解决方案
  10. 逆向某网站sign签名算法
  11. 关于oc中自动引用计数 小结
  12. python diango 增删改查_python中关于django对数据库Mysql的增删改查操作详解
  13. dw中创建java程序_Java创建对象的过程简介
  14. 《机器学习基石》笔记:第一讲
  15. 百度网盘下载加速器--ENFI下载器、Speedkoala、PanDownload、SpeedPan
  16. FPGA实现BT.1120编码
  17. 2019年Java春招汇总,技术类校招社招千道面试题,几百份大厂面经(附答案+考点)...
  18. Google镜像搭建:利用 Cloudflare Workers 搭建访问谷歌镜像站点,可自行绑定域名
  19. Freemarker生成word:导出多张图片list、同时导出文字+图片的list
  20. Fraction分数类II

热门文章

  1. 角速度与旋转矩阵的转换关系及思考
  2. 做了6年开发,工资涨不上去,怎么办?
  3. 北航计算机学院王华峰,计算机前沿科学与技术分论坛第二场宣讲会
  4. 虚拟主机的php环境怎么配置,虚拟主机配置thinkphp(如何实现虚拟主机配置)
  5. xcode连接新的iPhone进行app调试教程
  6. MATLAB快速入门(五):符号微积分
  7. 超级计算机的等级,亿亿次级别运算曙光初现-超级计算机,千万亿次,TeraScale,万万亿次,ExaScale ——快科技(驱动之家旗下媒体)--科技改变未来...
  8. 北大工学院计算机考研,北京大学机械考研经验-北大工学院考研辅导班
  9. 多层快速多极子源代码
  10. 《自控力》总结_完结