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封装对象实现时间效果
Apr 23 Python
python3批量删除豆瓣分组下的好友的实现代码
Jun 07 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
python把ipynb文件转换成pdf文件过程详解
Jul 09 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
pymysql模块的操作实例
Dec 17 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
python excel多行合并的方法
Dec 09 Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 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生成静态页
2006/11/25 PHP
php获取目标函数执行时间示例
2014/03/04 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
委托证明的格式
2014/01/10 职场文书
运动会广播稿300字
2014/01/10 职场文书
幼儿园开学寄语
2014/04/03 职场文书
校运动会广播稿300字
2014/10/07 职场文书
家长对孩子的寄语
2015/02/26 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
python 安全地删除列表元素的方法
2022/03/16 Python