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编程中time模块的一些关键用法解析
Jan 19 Python
Python实现Linux的find命令实例分享
Jun 04 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
Apr 05 Python
python3.6的venv模块使用详解
Aug 01 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
详解python中的hashlib模块的使用
Apr 22 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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者的疑难问答(2)
2006/10/09 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
js控制input输入字符解析
2013/12/27 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
js document.write()使用介绍
2014/02/21 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
Python求解平方根的方法
2015/03/11 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
转预备党员政审材料
2014/02/06 职场文书
北体毕业生求职信
2014/02/28 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
苏州园林导游词
2015/02/03 职场文书
烈士陵园观后感
2015/06/08 职场文书
政审证明材料
2015/06/19 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL
使用nginx配置访问wgcloud的方法
2021/06/26 Servers