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用10行代码实现对黄色图片的检测功能
Aug 10 Python
详解Python发送邮件实例
Jan 10 Python
对pandas中apply函数的用法详解
Apr 10 Python
Python实现购物车程序
Apr 16 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
Python实现Selenium自动化Page模式
Jul 14 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
python画图常规设置方式
Mar 05 Python
Python气泡提示与标签的实现
Apr 01 Python
matplotlib quiver箭图绘制案例
Apr 17 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
关于document.cookie的使用javascript
2008/04/11 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
解决Vue @submit 提交后不刷新页面问题
2020/07/18 Javascript
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Python实现Linux监控的方法
2019/05/16 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
事业单位考核材料
2014/05/21 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
亮剑观后感300字
2015/06/05 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python