tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)

TensorBoard简介

TensorBoard是一个可视化工具,能够有效地展示TensorFlow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的数据信息。TensorBoard 和 TensorFLow 程序跑在不同的进程中,TensorBoard 会自动读取最新的 TensorFlow 日志文件,并呈现当前 TensorFLow 程序运行的最新状态。

  • 添加记录节点:tf.summary.scalar/image/histogram()等
  • 汇总记录节点:merged = tf.summary.merge_all()
  • 运行汇总节点:summary = sess.run(merged),得到汇总结果
  • 日志书写器实例化:summary_writer = tf.summary.FileWriter(logdir, graph=sess.graph),实例化的同时传入 graph 将当前计算图写入日志
  • 调用日志书写器实例对象summary_writer的add_summary(summary, global_step=i)方法将所有汇总日志写入文件
  • 调用日志书写器实例对象summary_writer的close()方法写入内存,否则它每隔120s写入一次
  • 查看TensorBoard:tensorboard --logdir=D:\foxtable\big_data\logs,等于号后面是你的log地址
  • 添加节点名称:tf.name_scope('layer')
TensorBoard可视化

我们在前期的基础上(人工智能神器—TensorFlow入门基础(激励函数、隐藏层)),修改一下代码,显示如下图的可视化

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(1)

TensorBoard可视化

def add_layer(inputs,in_size,out_size,activation_function=None): with tf.name_scope('layer'): with tf.name_scope('weights'): Weights = tf.Variable(tf.random_normal([in_size,out_size]),name='W') with tf.name_scope('biases'): biases = tf.Variable(tf.zeros([1,out_size]) 0.1,name='b') with tf.name_scope('Wx_plus_b'): Wx_plus_b=tf.matmul(inputs,Weights) biases if activation_function is None: outputs=Wx_plus_b else: outputs=activation_function(Wx_plus_b) return outputs

如上代码就是我们定义层的代码,我们在定义层的基础上,把我们需要的节点都加上节点名称

with tf.name_scope('layer'):定义隐含层的名称为layer

在layer层里面定义了weights 与 biases 2个节点变量,且定义了矩阵相乘的节点名称,打开layer层,会看到如下

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(2)

weights 与 biases

在定义weights 与 biases时,我们也定义了变量的名称是W,b,当你接着打开weights 与 biases时,会看到里面我们定义的变量

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(3)

W,b

定义输入层

隐藏层的定义完成后,我们需要定义输入层

with tf.name_scope('inputs'): xs=tf.placeholder(tf.float32,[None,1],name='x_input') ys=tf.placeholder(tf.float32,[None,1],name='y_input')

定义输入层的名称为inputs,里面有2个变量x_input ,y_input

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(4)

输入层

lay_one=add_layer(xs,1,10,activation_function=tf.nn.relu)#hidden layer predition=add_layer(lay_one,10,1,activation_function=None)#输出层

以上加入2层隐藏层,定义输出层

定义loss 与train

with tf.name_scope('loss'): loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-predition),reduction_indices=[1])) with tf.name_scope('train'): train_step=tf.train.GradientDescentOptimizer(0.1).minimize(loss)

输入层与隐藏层定义完成后,需要定义loss 与train层,我们添加loss 与train层的名称如上

训练神经网络

init = tf.global_variables_initializer() # 开始训练 with tf.Session() as sess: writer=tf.summary.FileWriter("logs/",sess.graph) sess.run(init)

日志书写器实例化:summary_writer = tf.summary.FileWriter(logdir, graph=sess.graph),实例化的同时传入 graph 将当前计算图写入日志,会在当前目录下的log文件夹下,生成一个log文件。

可视化TensorBoard

当运行完程序后,会生成一个log文件,在Windows CMD命令,进入终端,输入如下命令:

tensorboard --logdir=D:\foxtable\big_data\logs

等号后面是你log的文件夹地址

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(5)

TensorBoard地址

运行完成后,会提示上图的运行地址,在Google浏览器上面输入地址,便会看到TensorBoard的可视化效果。(所有代码拼接起来就是本期完整代码)

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(6)

TensorBoard效果图

下期预告:

本期介绍了如何使用TensorBoard来搭建可视化过程,下期介绍下图的显示操作

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(7)

谢谢大家的点赞与转发,关于分享的文章,大家有任何问题,可以在评论区一起探讨学习!!!

tensorflow人工智能深度学习(人工智能TensorFlow九-TensorBoard)(8)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页