如何通过python画loss曲线的方法


Posted in Python onJune 26, 2019

1. 首先导入一些python画图的包,读取txt文件,假设我现在有两个模型训练结果的records.txt文件

import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
data1_loss =np.loadtxt("valid_RCSCA_records.txt") 
data2_loss = np.loadtxt("valid_SCRCA_records.txt")

2. 我自己的数据第一列是训练步数,第二列的loss,所以取出相应列的数据作为绘图的x和y

x = data1_loss[:,0]
y = data1_loss[:,1]
x1 = data2_loss[:,0]
y1 = data2_loss[:,1]

3. 先创建一幅图,再在这幅图上添加一个小图,小图用来显示部分放大的曲线

fig = plt.figure(figsize = (7,5))    #figsize是图片的大小`
ax1 = fig.add_subplot(1, 1, 1) # ax1是子图的名字`

4. 先画出整体的loss曲线

pl.plot(x,y,'g-',label=u'Dense_Unet(block layer=5)')`
# ‘'g‘'代表“green”,表示画出的曲线是绿色,“-”代表画的曲线是实线,可自行选择,label代表的是图例的名称,一般要在名称前面加一个u,如果名称是中文,会显示不出来,目前还不知道怎么解决。
p2 = pl.plot(x1, y1,'r-', label = u'RCSCA_Net')
pl.legend()
#显示图例
p3 = pl.plot(x2,y2, 'b-', label = u'SCRCA_Net')
pl.legend()
pl.xlabel(u'iters')
pl.ylabel(u'loss')
plt.title('Compare loss for different models in training')

画出曲线如图:

如何通过python画loss曲线的方法

5. 显示放大的部分曲线

# plot the box
tx0 = 0
tx1 = 10000
#设置想放大区域的横坐标范围
ty0 = 0.000
ty1 = 0.12
#设置想放大区域的纵坐标范围
sx = [tx0,tx1,tx1,tx0,tx0]
sy = [ty0,ty0,ty1,ty1,ty0]
pl.plot(sx,sy,"purple")
axins = inset_axes(ax1, width=1.5, height=1.5, loc='right')
#loc是设置小图的放置位置,可以有"lower left,lower right,upper right,upper left,upper #,center,center left,right,center right,lower center,center"
axins.plot(x1,y1 , color='red', ls='-')
axins.plot(x2,y2 , color='blue', ls='-')
axins.axis([0,20000,0.000,0.12])
plt.savefig("train_results_loss.png")
pl.show
#pl.show()也可以

如何通过python画loss曲线的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 正则表达式实现计算器功能
Apr 29 Python
spyder常用快捷键(分享)
Jul 19 Python
Flask框架使用DBUtils模块连接数据库操作示例
Jul 20 Python
Python虚拟环境的原理及使用详解
Jul 02 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
python 图像的离散傅立叶变换实例
Jan 02 Python
Python @property原理解析和用法实例
Feb 11 Python
Python代码注释规范代码实例解析
Aug 14 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
Nov 02 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
解决python存数据库速度太慢的问题
Apr 23 Python
python and or用法详解
Jun 26 #Python
python覆盖写入,追加写入的实例
Jun 26 #Python
通过cmd进入python的实例操作
Jun 26 #Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 #Python
Python实现的ftp服务器功能详解【附源码下载】
Jun 26 #Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 #Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 #Python
You might like
php面向对象中的魔术方法中文说明
2014/03/04 PHP
JS 控件事件小结
2012/10/31 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
JS解析XML实例分析
2015/01/30 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
JS实现“全选”和"全不选"功能代码实例
2020/02/06 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
Python交互环境下实现输入代码
2018/06/22 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
基于Python的OCR实现示例
2020/04/03 Python
PyTorch的torch.cat用法
2020/06/28 Python
python 基于opencv操作摄像头
2020/12/24 Python
Django视图类型总结
2021/02/17 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
css3让div随鼠标移动而抖动起来
2014/02/10 HTML / CSS
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
工作作风懒散检讨书
2014/10/29 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书