如何通过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 list使用示例 list中找连续的数字
Jan 27 Python
python操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Apache如何部署django项目
May 21 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
selenium+python自动化测试之鼠标和键盘事件
Jan 23 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
python实现坦克大战游戏 附详细注释
Mar 27 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
调整Jupyter notebook的启动目录操作
Apr 10 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
PHP脚本数据库功能详解(下)
2006/10/09 PHP
PHP 字符串分割和比较
2009/10/06 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
台湾生鲜宅配:大口市集
2017/10/14 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏