Keras使用tensorboard显示训练过程的实例


Posted in Python onFebruary 15, 2020

众所周知tensorflow造势虽大却很难用,因此推荐使用Keras,它缺省是基于tensorflow的,但通过修改keras.json也可以用于theano。但是为了能用tensorflow提供的tensorboard,因此建议仍基于tensorflow。

那么问题来了,由于Keras隐藏了tensorflow那令人诟病、可笑至极的graph构建方法,那么如何使用tensorboard呢?一般网站上会告诉你是这样的:

方法一(标准调用方法):

采用keras特有的fit()进行训练,只要在fit的时候指定callbacks函数即可,代码如下

from keras.callbacks import TensorBoard 
from keras.models import Sequential 
…… 
model = Sequential() 
…… 
tbCallBack = keras.callbacks.TensorBoard(log_dir='./Graph', 
histogram_freq=1, 
write_graph=True, 
write_images=True)

model_history = model.fit(X_train_train, 
y_train_train, 
batch_size=batch_size, 
epochs=epochs, 
verbose=1, 
validation_data=(X_train_val, y_train_val), 
callbacks = [EarlyStopping(patience=patience,mode='min',verbose=1), 
history, 
tbCallBack])

虽然这种方法看上去很美,但它只适用于标准训练方法,如果你想用自己的训练方法,就需要调用train_on_batch,而不能直接使用fit(),这时就要采用下面这种方法:

方法二(特殊调用方法):

这种方法可用于调用train_on_batch的情况。

%预先写好writer,定义好model 
writer = tf.summary.FileWriter(…) 
model = … 
%训练时 
loss = model.train_on_batch(…) 
summary = tf.Summary(value=[ 
tf.Summary.Value(tag=”d_loss”, simple_value=d_loss), 
tf.Summary.Value(tag=”g_loss”, simple_value=g_loss), 
]) 
writer.add_summary(summary)

虽然很简单,但这种方法只能显示scalar类型,不能显示image,histgram等,非常不实用。真正实用的是下面的终结方法:

方法三(最实用的方法)

最实用的还是用tensorflow原生的调用方法,虽然相对方法二麻烦一点,但考虑到此方法与tensorflow一样,不需要去记那些额外的花拳绣腿,因此反而是最简单的,也是最有效的。

代码如下:

import tensorflow as tf 
import datetime 
%在训练开始之前,预先定义好可视化的东西,用的是原生的tensorflow方法,这里我们以一个GAN模型为例,让它显示整张模型图,两个标量损失函数,以及5个生成图像。方法是预先用placeholder声明所要显示的那些东西,然后在训练过程中将训练结果来填充它们。你可以自行加入histgram,都和tensorflow一样 
#start tensorboard 
sess=tf.Session() 
logdir = “tensorboard/” + datetime.datetime.now().strftime(“%Y%m%d-%H%M%S”) + “/” 
writer = tf.summary.FileWriter(logdir, sess.graph) 
D_LOSS = tf.placeholder(tf.float32, []) 
G_LOSS = tf.placeholder(tf.float32, []) 
IMAGES = tf.placeholder(tf.float32,shape=[None,28,28,1]) 
tf.summary.scalar(“D_LOSS”, D_LOSS) 
tf.summary.scalar(“G_LOSS”, G_LOSS) 
tf.summary.image(“IMAGES”, IMAGES, 5) 
merged=tf.summary.merge_all() 
#end tensorboard

训练迭代过程中,是这样的

for epoch in range(100): 
% 用keras的train_on_batch方法进行训练 
d_loss = d.train_on_batch(。。。。。。) 
g_loss = d_on_g.train_on_batch(。。。。。。) 
generated_images = g.predict(。。。。。。) 
if index%10==0: #tensorboard 
% 将训练结果填充可视化数据 
summary=sess.run(merged,feed_dict={D_LOSS:d_loss, G_LOSS:g_loss, IMAGES:generated_images}) 
writer.add_summary(summary,index)

以上这篇Keras使用tensorboard显示训练过程的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
Python实现图片转字符画的代码实例
Feb 22 Python
python django 原生sql 获取数据的例子
Aug 14 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
python3+opencv生成不规则黑白mask实例
Feb 19 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 Python
用Python可视化新冠疫情数据
Jan 18 Python
Python利用逻辑回归分类实现模板
Feb 15 #Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 #Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 #Python
tensorboard显示空白的解决
Feb 15 #Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 #Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 #Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 #Python
You might like
PHP 高手之路(三)
2006/10/09 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
2013/06/13 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
angularjs项目的页面跳转如何实现(5种方法)
2017/05/25 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python map和reduce函数用法示例
2015/02/26 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
使用Python更换外网IP的方法
2018/07/09 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
python getpass模块用法及实例详解
2019/10/07 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
资料员岗位职责
2013/11/17 职场文书
创先争优一句话承诺
2014/05/29 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
护士旷工检讨书
2015/08/15 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python