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采集博客中上传的QQ截图文件
Jul 18 Python
Python用模块pytz来转换时区
Aug 19 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
python数据库编程 Mysql实现通讯录
Mar 27 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
Python+Appium实现自动抢微信红包
May 21 Python
解决pytorch-gpu 安装失败的记录
May 24 Python
Python采集壁纸并实现炫轮播
Apr 30 Python
LyScript实现绕过反调试保护的示例详解
Aug 14 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/11/25 PHP
php下使用以下代码连接并测试
2008/04/09 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
php7下的filesize函数
2019/09/30 PHP
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
Python ljust rjust center输出
2008/09/06 Python
netbeans7安装python插件的方法图解
2013/12/24 Python
python实现将文本转换成语音的方法
2015/05/28 Python
Python Requests 基础入门
2016/04/07 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
运动会通讯稿50字
2014/01/30 职场文书
销售求职信范文
2014/05/26 职场文书
创先争优标语
2014/06/27 职场文书
关键在于落实心得体会
2014/09/03 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
科级干部培训心得体会
2016/01/06 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫