- 个人微信公众号:
查看基本的图
- 只要使用summary中的FileWriter类就可以查到整个推断过程中的流程图
- 代码如下:
import tensorflow as tf input1 = tf.constant([1.0, 2.0, 3.0], name='input1') input2 = tf.Variable(tf.random_uniform([3]), name='input2') output = tf.add_n([input1, input2], name='add') save_path = '/home/give/PycharmProjects/Learn/Tensorflow/TensorBoard/save_log' writer = tf.summary.FileWriter(save_path, tf.get_default_graph()) writer.close()
- 效果如下:
查看运行过程中的参数
- 比如说我们想知道运行过程中参数的大小分布情况,我们可以可以记录他们平均值、方差的变换,还可以记录它的分布直方图。参考代码如下:
def variable_summaries(var, name): with tf.name_scope('summaries'): tf.summary.histogram(name, var) mean = tf.reduce_mean(var) # 和其他操作一样,scalar和histogram并不会立即执行,需要通过调用sess.run 来明确的调用 # scale 是记录一个标量 # histogram 是记录一个分布图 tf.summary.scalar( 'mean/' + name, mean ) stddev = tf.sqrt( tf.reduce_mean( tf.square(var - mean) ) ) tf.summary.scalar( 'stddev/' + name, stddev )
- 通过上述代码,我们就可以记录运行过程中一些参数的值。比如说我们想记录全连接层的权重的信息,我们就可以如下方式调用:
with tf.name_scope('weights'): weights = tf.Variable( tf.truncated_normal( [ input_dim, output_dim ], stddev=0.1 ) ) variable_summaries(weights, layer_name + '/weights')
- 再比如说我们想了解运行过程中准确率的变换情况,我们就可以这么调用:
with tf.name_scope('accuracy'): with tf.name_scope('correction_prediction'): correct_prediction = tf.equal( tf.argmax(y, 1), tf.argmax(y_, 1) ) with tf.name_scope('accuracy'): accuracy = tf.reduce_mean( tf.cast(correct_prediction, tf.float32) ) tf.summary.scalar('accuracy', accuracy)
-在这里我们主要使用了如下三个函数:
- tf.summary.scaler(name, value) : 添加一个标量数据,我们可以在tensorboard主页上的scaler上看到我们存入值的信息,如下所示:
- tf.summary.histogram(name, value): 添加一个数据,我们可以看到数据的分布,这个分布我至今还没有明白是怎么回事,看不太懂。。
- tf.summary.image(name, value): 添加一个图像,我们可以在Image tab上看到我们存入的图像。
TensorBoard使用
最新推荐文章于 2024-08-31 14:17:57 发布