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基础教程之数字处理(math)模块详解
Mar 25 Python
python k-近邻算法实例分享
Jun 11 Python
详谈python http长连接客户端
Jun 12 Python
详解 Python 读写XML文件的实例
Aug 02 Python
浅谈flask源码之请求过程
Jul 26 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
python实现发送form-data数据的方法详解
Sep 27 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
使用Pandas将inf, nan转化成特定的值
Dec 19 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
教你怎么用python实现字符串转日期
May 24 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下通过POST还是GET来传值
2008/06/05 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
toString()一个会自动调用的方法
2010/02/08 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
移动端界面的适配
2017/01/11 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
Python实现的爬虫功能代码
2017/06/24 Python
Python标准库itertools的使用方法
2020/01/17 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
信用社实习人员自我鉴定
2013/09/20 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
工程承包协议书
2014/04/22 职场文书
小学语文教研活动总结
2014/07/01 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android