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 socket C/S结构的聊天室应用实现
Nov 30 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
Python函数式编程指南(四):生成器详解
Jun 24 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Python 高级专用类方法的实例详解
Sep 11 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python continue继续循环用法总结
Jun 10 Python
Python列表解析配合if else的方法
Jun 23 Python
numpy中loadtxt 的用法详解
Aug 03 Python
在python中使用xlrd获取合并单元格的方法
Dec 26 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
python能做哪方面的工作
Jun 15 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
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP 快速排序算法详解
2014/11/10 PHP
php二维码生成
2015/10/19 PHP
PHP 断点续传实例详解
2017/11/11 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Python实现的密码强度检测器示例
2017/08/23 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
python破解zip加密文件的方法
2018/05/31 Python
Python实现基于POS算法的区块链
2018/08/07 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
Python reduce函数作用及实例解析
2020/05/08 Python
Django实现随机图形验证码的示例
2020/10/15 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
财务简历的自我评价
2014/03/05 职场文书
国庆宣传标语
2014/06/30 职场文书
公积金接收函格式
2015/01/30 职场文书
学校德育工作总结2015
2015/05/11 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript