Keras在训练期间可视化训练误差和测试误差实例


Posted in Python onJune 16, 2020

详细的解释,读者自行打开这个链接查看,我这里只把最重要的说下

fit() 方法会返回一个训练期间历史数据记录对象,包含 training error, training accuracy, validation error, validation accuracy 字段,如下打印

# list all data in history
print(history.history.keys())

完整代码

# Visualize training history
from keras.models import Sequential
from keras.layers import Dense
import matplotlib.pyplot as plt
import numpy
 
# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)
# load pima indians dataset
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",")
# split into input (X) and output (Y) variables
X = dataset[:,0:8]
Y = dataset[:,8]
# create model
model = Sequential()
model.add(Dense(12, input_dim=8, kernel_initializer='uniform', activation='relu'))
model.add(Dense(8, kernel_initializer='uniform', activation='relu'))
model.add(Dense(1, kernel_initializer='uniform', activation='sigmoid'))
 
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
 
# Fit the model
history = model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10, verbose=0)
 
# list all data in history
print(history.history.keys())
 
# summarize history for accuracy
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
 
# summarize history for loss
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()

Keras在训练期间可视化训练误差和测试误差实例

补充知识:训练时同时输出实时cost、准确率图

首先定义画图函数:

train_prompt = "Train cost"
cost_ploter = Ploter(train_prompt)
def event_handler_plot(ploter_title, step, cost):
 cost_ploter.append(ploter_title, step, cost)
 cost_ploter.plot()

在训练时如下方式使用:

EPOCH_NUM = 8
# 开始训练
lists = []
step = 0
for epochs in range(EPOCH_NUM):
 # 开始训练
 for batch_id, train_data in enumerate(train_reader()):    #遍历train_reader的迭代器,并为数据加上索引batch_id
  train_cost,sult,lab,vgg = exe.run(program=main_program,  #运行主程序
        feed=feeder.feed(train_data),    #喂入一个batch的数据
        fetch_list=[avg_cost,predict,label,VGG])   #fetch均方误差和准确率
  if step % 10 == 0:    
   event_handler_plot(train_prompt,step,train_cost[0])
  # print(batch_id)
  if batch_id % 10 == 0:         #每100次batch打印一次训练、进行一次测试
   p = [np.sum(pre) for pre in sult]
   l = [np.sum(pre) for pre in lab]
   print(p,l,np.sum(sult),np.sum(lab))
   print('Pass:%d, Batch:%d, Cost:%0.5f' % (epochs, batch_id, train_cost[0]))
  step += 1
 # 保存模型
 if model_save_dir is not None:
  fluid.io.save_inference_model(model_save_dir, ['images'], [predict], exe)

print('训练模型保存完成!')
end = time.time()
print(time.strftime('V100训练用时:%M分%S秒',time.localtime(end-start)))

实时显示准确率用同样的方法

以上这篇Keras在训练期间可视化训练误差和测试误差实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python标准库urllib2的一些使用细节总结
Mar 16 Python
Python实现数通设备端口使用情况监控实例
Jul 15 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
python数据处理实战(必看篇)
Jun 11 Python
python中正则表达式的使用方法
Feb 25 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
python 字典中取值的两种方法小结
Aug 02 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
Python 实现向word(docx)中输出
Feb 13 Python
详解Python调用系统命令的六种方法
Jan 28 Python
使用Python封装excel操作指南
Jan 29 Python
如何在Windows中安装多个python解释器
Jun 16 #Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 #Python
浅谈matplotlib中FigureCanvasXAgg的用法
Jun 16 #Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 #Python
Pytorch 使用CNN图像分类的实现
Jun 16 #Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 #Python
Python SMTP配置参数并发送邮件
Jun 16 #Python
You might like
操作Oracle的php类
2006/10/09 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
php备份数据库类分享
2015/04/14 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
js实现查询商品案例
2020/07/22 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
基于Python实现简单学生管理系统
2020/07/24 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
业务经理的岗位职责
2013/11/16 职场文书
高级方案规划工程师岗位职责
2013/11/29 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
会计应届生的自荐信
2013/12/13 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
工作保证书怎么写
2015/02/28 职场文书
护林员个人总结
2015/03/04 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python