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使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
详解Python中DOM方法的动态性
Apr 11 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
Python简单实现enum功能的方法
Apr 25 Python
Python输入二维数组方法
Apr 13 Python
漂亮的Django Markdown富文本app插件的实现
Jan 02 Python
python3实现点餐系统
Jan 24 Python
详解Django 时间与时区设置问题
Jul 23 Python
使用python实现滑动验证码功能
Aug 05 Python
解析python实现Lasso回归
Sep 11 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
Python安装whl文件过程图解
Feb 18 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
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
js+html5操作sqlite数据库的方法
2016/02/02 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
JS面向对象实现飞机大战
2020/08/26 Javascript
Python中的zip函数使用示例
2015/01/29 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python中的rjust()方法使用详解
2015/05/19 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
python scipy卷积运算的实现方法
2019/09/16 Python
python关于调用函数外的变量实例
2019/12/26 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
python集合能干吗
2020/07/19 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
幼儿园中班教师寄语
2014/04/03 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
请客吃饭开场白
2015/06/01 职场文书
党内外群众意见范文
2015/06/02 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
利用python进行数据加载
2021/06/20 Python