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 list 合并连接字符串的方法
Mar 09 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
Python+selenium实现截图图片并保存截取的图片
Jan 05 Python
Python设计模式之门面模式简单示例
Jan 09 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
python实现自动清理重复文件
Aug 24 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 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设计模式 Command(命令模式)
2011/06/26 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
Javascript将数字转化成为货币格式字符串
2016/06/22 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
如何实现iframe父子传参通信
2020/02/05 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
JavaScript实现滑块验证解锁
2021/01/07 Javascript
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
先进工作者获奖感言
2014/02/08 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
使用python绘制横竖条形图
2022/04/21 Python