Tensorboard的数据形式
Tensorboard可以记录与展示以下数据形式:
(1)标量Scalars
(2)图片Images
(3)音频Audio
(4)计算图Graph
(5)数据分布Distribution
(6)直方图Histograms
(7)嵌入向量Embeddings
Tensorboard的可视化过程
(1)建立一个graph,你想从这个graph中获取某些数据的信息
(2)确定要在graph中的哪些节点放置summary operations以记录信息
使用tf.summary.scalar记录标量
使用tf.summary.histogram记录数据的直方图
使用tf.summary.distribution记录数据的分布图
使用tf.summary.image记录图像数据
….
(3)operations并不会去真的执行计算,除非你告诉他们需要去run,或者它被其他的需要run的operation所依赖。而我们上一步创建的这些summary operations其实并不被其他节点依赖,因此,我们需要特地去运行所有的summary节点。但是呢,一份程序下来可能有超多这样的summary 节点,要手动一个一个去启动自然是及其繁琐的,因此我们可以使用tf.summary.merge_all去将所有summary节点合并成一个节点,只要运行这个节点,就能产生所有我们之前设置的summary data。
(4)使用tf.summary.FileWriter将运行后输出的数据都保存到本地磁盘中
(5)运行整个程序,并在命令行输入运行tensorboard的指令,之后打开web端可查看可视化的结果
tf.name_scope()函数
复杂的TensorFlow 一般由数以千计的节点所构成,如此多而难以一下全部看到,甚至无法使用标准图表工具来展示。为简单起见,我们为op/tensor名划定范围,并且可视化把该信息用于在图表中的节点上定义一个层级。
代码示例
1、数据准备
今天程序上来第一部分就发生变化,出现了新面孔,那就是定义了一个variable_summaries()函数,传递参数为var。
这个函数的作用是:
(1)将传递过来的参数var进行求均值(mean)、标准差(stddev)、最大最小值(max、min)
(2)用tf.summary.scalar()函数,分别对上述的几个统计量(标量)进行记录,同时记录参数var的直方图(tf.summary.histogram()函数实现)
在这里大家发现了我用的tf.name_scope()函数,我在这里建立了一个名叫summaries的可视化节点的层级,之后在Tensorboard中将会找到它。
2、准备好placeholder
同样,我用tf.name_scope()函数,建立了一个名叫input的可视化节点的层级,这个节点层下包含 x_input、y_input、learning_rate 三个子节点。
3、初始化参数/权重
同理,这里我对每个变量都做了同样的操作,只不过这里我命名了3个层级的节点,大家是否能准确找到呢~~,同时对权重值W1、W2、W3,偏置值b1、b2、b3进行variable_summaries()函数的调用,想具体了解这些参数在模型训练中是如何发生变化
4、计算预测结果
5、计算损失值
6、初始化optimizer
7、指定迭代次数,并在session执行graph
运行结果
今天我们的重点在于Tensorboard上,准确率就不展示了,因为程序在计算上没有变化,依旧会是0.98附近。
接下来我们要做的就是打开Tensorboard,在Macbook中打开终端输入tensorboard –logdir=
关注小鲸融创,一起深度学习金融科技!