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中将字典转换成其json字符串
Jul 16 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 Python
Python实现定时任务
Feb 08 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
Python简单基础小程序的实例代码
Apr 28 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
Python log模块logging记录打印用法解析
Jan 20 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
Django展示可视化图表的多种方式
Apr 08 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
php命令行用法入门实例教程
2014/10/27 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
异步加载script的代码
2011/01/12 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python实现C4.5决策树算法
2018/08/29 Python
python文件拆分与重组实例
2018/12/10 Python
python flask框架实现重定向功能示例
2019/07/02 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
职工运动会邀请函
2014/01/19 职场文书
货车司机岗位职责
2014/03/18 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android