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的Tornado框架中的协程异步实现原理
Apr 23 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
对python中的xlsxwriter库简单分析
May 04 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
python批量解压zip文件的方法
Aug 20 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
用python绘制樱花树
Oct 09 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
解析htaccess伪静态的规则
2013/06/18 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
javascript的内存管理详解
2013/08/07 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
Flask框架的学习指南之用户登录管理
2016/11/20 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
关于numpy数组轴的使用详解
2019/12/05 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Python编写单元测试代码实例
2020/09/10 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
社区党员先进事迹
2014/01/22 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
党支部公开承诺书
2014/03/28 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
植树节活动总结
2014/04/30 职场文书
驻村工作先进事迹
2014/08/14 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
活动宣传稿范文
2015/07/23 职场文书
MySQL基础快速入门知识总结(附思维导图)
2021/09/25 MySQL