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实现发送邮件功能代码
Dec 14 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
python更改已存在excel文件的方法
May 03 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
Apr 25 Python
对django 模型 unique together的示例讲解
Aug 06 Python
jupyter notebook实现显示行号
Apr 13 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
解决Django transaction进行事务管理踩过的坑
Apr 24 Python
Python中rapidjson参数校验实现
Jul 25 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
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
一个原生的用户等级的进度条
2010/07/03 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
OpenLayers3实现测量功能
2020/09/25 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python获取任意xml节点值的方法
2015/05/05 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
Python数据类型学习笔记
2016/01/13 Python
Python爬取成语接龙类网站
2018/10/19 Python
django session完成状态保持的方法
2018/11/27 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
Django全局启用登陆验证login_required的方法
2020/06/02 Python
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
中职生自荐信范文
2014/06/15 职场文书
投资意向协议书
2015/01/29 职场文书
初三数学教学反思
2016/02/17 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
java中用float时,数字后面加f,这样是为什么你知道吗
2021/09/04 Java/Android
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python