有关TensorBoard一些小Tip和实例

0. 只愿君心

    服气,两个多月前调的代码莫名其妙崩,各种莫名其妙的错误改了一上午都没改好,可能这就是Doc2Vec的劝退吧。本喵真的想手动问号三连。算了,反正这个东西用得很少很少,就像为了发论文强行扯出来的玩意。

    然后今天还是要更点东西,因为那谁不按套路出牌竟然来实验室了....我其他事情也做不了啊啊。看书和更新博客是最舒适的事情了,相比于听他跟我讨论“前沿NLP”——CPU+Spark下的NLP???

    我想起以前吧,在三月份真正开始学DeepNLP的时候,改了一个TextCNN的二分类代码,当时也是花了一两周啊。之后我会更新下github把代码都按文件上传一下。怎么办,其实TensorBoard我用的也不是很多,但是有些实例操作可能记录一下比到处查和摸索还是要好很多吧。我当时用的时候参考的CSDN这篇博客:https://blog.csdn.net/gsww404/article/details/78605784。但本猫也不是很爱copy,这篇博文注定内容很短吗哈哈,怎么够我在某人的眼神下熬到下班去运动。

1. 似我心

    虽然贴了参考了,不过还是简单介绍下今天的主角——TensorBoard。这个东西呢,简单来说就是TFboys自带的一个插件(可以这么说吧,确实没有额外去安装什么东西)。当你在代码里面声明了日志记录,并按照TensorBoard规范声明了一些变量名时,TensorBoard读到日志就会实时用可视化的方式展现网络结构训练进程等等,以展现Tensorflow程序的最新运行状态。

    TensorBoard的可视化具体一点来说分为:计算图可视化(网络结构等)监控指标可视化(loss和accuracy及各层权值参数等)。我感觉这两个比较主要,其他的就是功能混合吧。下面就分小节举一些实例好吧。


    首先是TensorBoard在代码中的一些体现。其实主要是添加记录节点、汇总节点、得到节点汇总结果等等等等等。大家在使用的时候参考下上面那篇博客,或者参考别人能实例化TensorBoard的代码吧。作为一个优秀的“程序员”对吧,抄抄更健康。简单举个栗子,在声明网络结构时,对每层的命名用下图方式。比如TextCNN里面的Embedding层和几个卷积-池化层:

这样的好处就是,当你实例化TensorBoard的时候,查看GRAPHS会发现。哇,网络是这个样子吗,一目了然。(特别是读别人的网络时,如果作者的Tensorflow代码非常非常规范的话)还是举个例子展示一下吧,比如TextCNN的网络结构。如果你是第一次接触这个网络,这个计算图就能帮助你更快的入手网络,每一层输入输出参数大小也都可以在图上点击查到:



    等会,我好像忘记写怎么打开TensorBoard了吧。是这样的,如果代码中写了存储日志和相关参数的话,都会在代码目录下生成一个如下的文件:

然后返回到train目录上一层,打开命令行输入如下。等返回链接时直接打开连接就到了TensorBoard的界面了。如果崩了就再试一下就好:


    还有什么说的呢,其实打开TensorBoard很多东西都可以试一下,只要代码质量够高,记录是非常详细的。比如loss和acc。图形和数据都是可以直接导出下载的(CSV和JSON格式),不管你用不用TensorBoard自带的图,拿到导出数据用Matlab或者Python二次创作(改数据造假)也很方便啊。为什么是0.618,只是本猫喜欢这个数字吧哈哈哈哈。

 

2. 定不负相思意

    没什么好写的了吧,具体操作参考博客吧。我比较喜欢下那些代码风格很严谨的,所以自己可以少操点心。不过,今天这个阳光总是给我一种周五的感觉啊。写博客挺累的,不管简单的东西还是难的东西。这个月最后一天更新一篇,之后再说吧。五月再见,夏天的话本猫最喜欢应该就是六月了吧。

原文地址:https://www.cnblogs.com/catallen/p/9116905.html