TensorBoard 在1.0 版本后的使用

    xiaoxiao2021-03-25  143

    注意:在阅读本文之前,请务必更新你的浏览器。Chrome大法好! 数据、模型可视化是TensorFlow的一项重要的功能,安装后自带的TensorBoard是一个很强大的工具,但目前的教程大多都停留在TensorFlow 1.0 版本之前,一些函数已经改名无法使用,因此写一篇比较新的使用说明。


    主要区别

    如果之前使用过TensorBoard,其实只是换一下函数名就可以了。在Github上新版本说明文档中,已经有了对这一方面的说明:

    Replace tf.scalar_summary, tf.histogram_summary, tf.audio_summary, tf.image_summary with tf.summary.scalar, tf.summary.histogram, tf.summary.audio, tf.summary.image, respectively. The new summary ops take name rather than tag as their first argument, meaning summary ops now respect TensorFlow name scopes.

    也就是说,summary独立出来了,以前tf.XXX_summary这样的下划线变成了tf.summary.XXX的格式。

    数据可视化

    对于标量

    如果我们想对标量在训练中可视化,可以使用tf.summary.scalar(),比如损失loss:

    loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),reduction_indices=[1])) tf.summary.scalar('loss',loss)

    得到一个loss的summary。

    对于参数

    应使用tf.summary.histogram(),如全链接的权重:

    tf.summary.histogram("/weights",Weights)

    merge并运行

    就像变量需要初始化一样,summary也需要merge:

    merged = tf.summary.merge_all()

    之后定义一个输出器记录下在运行中的数据:

    writer = tf.summary.FileWriter("output/",sess.graph)

    最后记得在训练过程中执行这两个模块:

    for i in range(1000): sess.run(train_step,feed_dict={xs:x_data,ys:y_data}) if i%50==0:# 50次记录一次 result = sess.run(merged,feed_dict={xs:x_data,ys:y_data}) writer.add_summary(result,i)

    TensorBoard 运行

    安装TensorFlow时已经自带TensorBoard,如果直接在命令行中输入tensorboard而没有对应指令,可以从安装目录下执行:

    python ~/.local/lib/python2.7/site-packages/tensorflow/tensorboard/tensorboard.py --logdir=output/

    运行成功后,会显示:

    (You can navigate to http://XXX.XXX.XXX.XXX:6006)

    然后在浏览器中输入这个地址即可。

    注意 IE以及低版本的Chrome都对TensorBoard不兼容(firefox据说也不好用),会出现白屏或者点开loss图没有内容的情况。因为用的台式电脑,之前用的人装了360,我也就继续用了,结果在这里纠结了很久……

    行了,这就成功了~


    现在越学越觉得TensorFlow复杂了。。

    转载请注明原文地址: https://ju.6miu.com/read-2554.html

    最新回复(0)