Tensorboard工具的介绍和使用方法

版权声明:站在巨人的肩膀上学习。 https://blog.csdn.net/zgcr654321/article/details/83684725

Tensorboard中的数据形式:

Tensorboard可以记录与展示以下数据形式: 

标量Scalars;

图片Images; 

音频Audio;

计算图Graph; 

数据分布Distribution;

嵌入向量Embeddings。

Tensorboard的使用流程:

1、添加记录数据的节点:

使用tf.summary.scalar记录标量;

使用tf.summary.histogram记录数据的直方图;

使用tf.summary.distribution记录数据的分布图;

使用tf.summary.image记录图像数据;

如果有需要。在这一步中可以创建命名空间,将不同的变量归到不同的命名空间下。

如:

with tf.name_scope('summaries'):
      # 计算参数的均值,并使用tf.summary.scaler记录
      mean = tf.reduce_mean(var)
      tf.summary.scalar('mean', mean)

2、汇总记录节点:

merged = tf.summary.merge_all()

3、创建一个运行图,并运行汇总节点,得到汇总的结果

with tf.Session() as sess:

    summary = sess.run(merged)

4、日志书写器实例化,在实例化的同时传入 graph 将当前计算图写入日志

summary_writer = tf.summary.FileWriter(logdir, graph=sess.graph)

5、调用日志书写器实例对象summary_writeradd_summary(summary, global_step=i)方法将所有汇总日志写入文件;

6、调用日志书写器实例对象summary_writerclose()方法写入内存,否则它每隔120s写入一次。

7、运行tensorboard读取保存的日志数据并显示出来:

如果 logdir 目录的子目录中包含另一次运行时的数据(多个 event),那么 TensorBoard 会展示所有运行的数据(主要是scalar),这样可以用于比较不同参数下模型的效果,调节模型的参数,让其达到最好的效果。

打开Anaconda prompt,激活tensorflow所在的环境,然后输入:

tensorboard --logdir=save_logdir

然后打开浏览器,输入http://127.0.0.1::6006

如果上面的命令无效,可以试试下面的指令:

tensorboard --logdir=save_logdir --host=127.0.0.1

即可显示出我们刚才添加的所有数据。

Tensorboard使用案例:

我们建立一个简单的神经网络,来使用Tensorboard工具。

代码如下:

import tensorflow as tf
import numpy as np

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

log_dir = "E:/logs/"
print("created log_dir path")

a = tf.placeholder(dtype=tf.float32, shape=[100, 1], name='a')

with tf.name_scope('add_example'):
	b = tf.Variable(tf.truncated_normal([100, 1], mean=-0.5, stddev=1.0), name='var_b')
	tf.summary.histogram('b_hist', b)
	increase_b = tf.assign(b, b + 0.2)
	c = tf.add(a, b)
	tf.summary.histogram('c_hist', c)
	c_mean = tf.reduce_mean(c)
	tf.summary.scalar('c_mean', c_mean)
merged = tf.summary.merge_all()
train_writer = tf.summary.FileWriter(log_dir + '/train', sess.graph)  # 保存位置
test_writer = tf.summary.FileWriter(log_dir + '/test', sess.graph)

sess.run(tf.global_variables_initializer())
for step in range(500):
	if (step + 1) % 10 == 0:
		_a = np.random.randn(100, 1)
		summary, _ = sess.run([merged, increase_b], feed_dict={a: _a})  # 每步改变一次 b 的值
		test_writer.add_summary(summary, step)
	else:
		_a = np.random.randn(100, 1) + step * 0.2
		summary, _ = sess.run([merged, increase_b], feed_dict={a: _a})  # 每步改变一次 b 的值
		train_writer.add_summary(summary, step)
train_writer.close()
test_writer.close()
print('END!')

运行该.py文件,然后在指定的路径下生成了日志文件:

打开Anaconda prompt,然后:

activate tensorflow-gpu

tensorboard --logdir=E:/logs/ --host=127.0.0.1

然后打开浏览器,输入http://127.0.0.1:6006

猜你喜欢

转载自blog.csdn.net/zgcr654321/article/details/83684725