首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过 TensorBoard 将模型可视化

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

为了更方便 TensorFlow 程序的理解、调试与优化,TensorFlow 团队发布了一套名为 TensorBoard 的可视化工具。开发者们可以用 TensorBoard 来展现 TensorFlow 图,绘制图像生成的定量指标图以及显示附加数据(如其中传递的图像),请看 Yufeng 为大家带来的分享:

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

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

用 TensorBoard 发现问题所在

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

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

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

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

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

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

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

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

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

回归正题,我们来看看之前一直使用的线性模型在 TensorBoard 当中的表现。首先需要启动 TensorBoard 并将之指向目标模型层次结构及重要中间文件所在的目录:

此项操作会启动一个侦听 6006 端口的本地服务器。

6006 看起来是不是非常像「GOOG」呢?

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

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

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

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

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

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

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

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

上回预告

本期是 AIA 系列的第五期,第四期呢?

第四期讲述的是如何使用 Google Cloud 的机器学习引擎训练和预测,实践本期有一定的难度,所以老编让小编低调处理。小编这颗想搞颗大新闻的心啊,哇哇的凉,那就传到官方认证的 bilibili 频道,大家一起观摩吧:

https://www.bilibili.com/video/av24170564/

下回预告

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

感谢 & 互动

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180531G0H1LG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券