发新帖

通过 TensorBoard 将模型可视化

[复制链接]
890 5

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
本帖最后由 dong 于 2018-5-31 05:56 编辑

AIA (AI Adventures)系列现在已经进入第四期了。前三期分享当中,Yufeng 介绍了机器学习的核心概念、基本逻辑,也介绍了要进行机器学习需要经过哪些步骤,并根据这些基本知识尝试使用线性评估器 API 打造了鸢尾花分类模型。今天的分享中,他会与我们分享一个非常有力的工具:TensorBoard,让你能看穿模型,监测训练过程。

本期我们会用 TensorBoard 来尝试将模型可视化,并利用它来 debug。

【视频审核中】

当你能「看清」问题所在时,调试起来是最简单的。但是当大量的训练数据如潮水般涌入复杂模型的时候,调试的过程往往会变得无比复杂。不过别怕,幸亏有 TensorBoard,一切变得简单起来。

机器学习可不像传统的编程,它往往变幻莫测。模型间的细小差别以及数据的质量、参数微调中的小小改变都可能对最终成功与否造成巨大的影响。

ep5-1.jpeg

  
让 TensorBoard 发现问题所在

只有当我们纵览模型整体结构,并跟踪某些特征数据在整个训练过程当中的变化时,才能有效调校模型并调试所「看到」的问题。

这一抽象的流程往往难以通过可视化的方式呈现,不过现在 TensorFlow 内置了解决方案将会带来改变。

现在一起来看看内置于 TensorFlow 的可视化方案 — TensorBoard,一个让你更能把控大量操作的工具。不论是观察模型整体结构还是监视整个模型训练过程。

ep5-2.png


TensorFlow 在内部使用了计算机图形理论的思想。

ep5-3.png


也就是说,为了取缔传统意义上两数相加的思维,TensorFlow 构造了新的加法运算,并将之作为参数传入,随后数值将会被这一运算加在一起。

所以我们回头思考 TensorFlow 训练过程,其实就是将所有操作当成图的一部分来执行的过程。TensorBoard 可以将这些模型可视化,所以你能看到模型抽象出来是什么样子,更让你得以检查是否所有部分都按要求组合在了一起。

v2-bebfdcc5f2ab3fa28dfc5504966912e3_b.gif


下面来个更复杂点的例子,同样是用 TensorFlow 将模型可视化的例子。注意看上图,TensorFlow 让我们可以缩放、扫视、展开模型的各个元素以得到更多细节。这就是说,我们可以从不同的抽象层次观察模型,从而降低了视觉复杂度。

ep5-5.png


并且,TensorBoard 除了向我们展示模型的结构,还会将各项特征值的变化很好布局在图上。我们会将精确度、失真、跨熵等拿来布局观测,且另一方面,依赖于模型的众多特征值往往都非常重要。至于 TensorFlow 的预置发射器,它们自带了一套预设值用于在 TensorBoard 中使用。这一特性为后续使用做好了铺垫。

TensorBoard 除了上述功能,还能展示包括条形图、分布图以及诸如声音、图像、文字等与模型共生的数据等等大量的信息。不过关于那部分的详细介绍要等到后面的视频。

回归正题,我们来看看之前一直使用的线性模型在 TensorBoard 当中的表现。首先需要启动 TensorBoard 并将之指向目标模型层次结构及重要中间文件所在的目录:
  1. <div align="left"><span style="color: rgb(105, 105, 105);">tensorboard --logdir=」/tmp/iris_model/」</span></div>
复制代码

此项操作会启动一个侦听 6006 端口的本地服务器。6006 看起来是不是非常像「GOOG」呀?

ep5-6.png



我们可以看到一些线性 classifier 默认提供的标量特征值。稍后可以通过缩放和展开来研究这些图像。

ep5-7.png


双击能够回退到更高的缩放级别。可见,我们的模型训练随着时间推移正以逐渐降低的失真井然有序进行。并且我们能清晰看到模型训练尚未完成,原因是当前的失真下降率仍然较高。它提示我们,也许应当再多训练一会儿,进而从训练过程中获得更多收益。

接下来看看 Graph 小分页。注意看,此时图还是非常简单的。

ep5-8.png


我们能通过点击小块儿上面的加号展开查看更详细的内容。比如,我现在展开了「linear」这个模块,可以看到它由不少子模块组成。我们可以通过滚轮来缩放视野,也可以通过点按拖拽来查看其他部分。

注意我们给特征列的名字,比如此处的 flower_features 在图中以模块形式呈现。

ep5-9.png


这种方式将有助于调试并了解上面展示的图中各部分是怎样联结起来的。大多数 TensorFlow 的操作是可以命名的,所以这是一个将模型阐述清楚和观察当前训练进展的好机会。



今天,我们学到了简单有趣的机器学习模型重要特征值可视化相关知识。TensorBoard 将让你轻松体验到这种乐趣,并且最妙之处是它已经完全内置在 TensorFlow 当中了。

记住下一次你想要把机器学习过程可视化时,TensorBoard 是你的不二选择。

想获取更多分享,请务必关注专栏,今后有更新时便会收到推送。

另外,TensorBoard 的缔造者,在今年早些时候的 TensorFlow Dev Summit 上发表了精彩讲演,去那里看一看,找到更多关于 TensorBoard 的深入分享。

下回预告
还记得我们上一次分享了 TensorFlow 的线性评估器吗?不如这次试试改成深度神经网络版本的?敬请期待!

感谢 & 互动
感谢来自社区的 Yuan、萌东对本系列视频/文章的翻译。


本楼点评(0) 收起

精彩评论5

rocLv  TF荚荚  发表于 2018-6-5 06:46:40 | 显示全部楼层
貌似不是原创啊
本楼点评(0) 收起
dong  TF豆豆  发表于 2018-6-5 08:20:11 | 显示全部楼层
rocLv 发表于 2018-6-5 06:46
貌似不是原创啊

这是由 Google 工程师 Yufeng Guo 在 YouTube 和 Medium 发布的一系列分享的翻译和编选,由谷创字幕组译者翻译和在中文社区发布。欢迎多提宝贵意见!
本楼点评(0) 收起
zhanys_7  TF荚荚  发表于 2018-7-3 18:13:05 | 显示全部楼层
多谢翻译
本楼点评(0) 收起
jka  TF荚荚  发表于 2018-7-4 08:53:02 | 显示全部楼层
tb好像可以直接可视化吧
本楼点评(0) 收起
ves  TF荚荚  发表于 2018-7-4 19:49:46 | 显示全部楼层
AIA系列一直在关注
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

70

积分
快速回复 返回顶部 返回列表