Tensorboard的一些基本的使用方法

可视化计算流程

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    writer = tf.summary.FileWriter('logs/', sess.graph)

只需要把sess.graph写进去就可以,既可以看到流程图

可视化参数

  • 1.先建立一个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端可查看可视化的结果

简单来说 比如一些loss acc,可以在模型定义的时候指定出来

 tf.summary.scalar("loss", self.loss)
 tf.summary.scalar("accuracy", self.accuracy)

然后再运行图的时候进行merge,,然后写进文件

merged = tf.summary.merge_all()  # 合并所有的summary data的获取函数,
with tf.Session(config=self.config) as sess:
   tf.global_variables_initializer().run()
   writer = tf.summary.FileWriter(self.model_save_dir, sess.graph)
   .....
   .............
   summary,_loss, _acc, _ = sess.run([merged,model.loss, model.accuracy, model.train_op], feed_dict)
   writer.add_summary(summary, step)

远程tensorboard

通常在进行深度学习时都是在远处的服务器上进行训练的,所以此时该怎么在本地电脑可视化呢?答案是利用SSH的方向隧道技术,将服务器上的端口数据转发到本地对应的端口,然后就能在本地方法服务器上的日志数据了。
从上面连接成功后的提示可以知道,tensorboard所用到的端口时6006(没准儿哪天就换了),所以我们只需将该端口的数据转发到本地即可。

  • ssh -L 16006:127.0.0.1:6006 [email protected]
  • 其中16006是本地的任意端口,只要不和本地应用有冲突就行,随便写;
  • 后面的account指你服务器的用户名,紧接是Ip
  • windows的话,直接在命令行里执行这条令就行(也不知道啥时候windows命令行也支持ssh了)在登陆成功后(此时已远程登陆了服务器),同样进入到logs目录的上层目录,然后运行tensorboard --logdir=logs;
  • 最后,在本地浏览器中运行127.0.0.1:16006即可。

同时可视化train、test

writer1 = tf.summary.FileWriter(self.model_save_dir+"./train", sess.graph)
writer2 = tf.summary.FileWriter(self.model_save_dir+"./test", sess.graph)

在同一个目录下,train和test分别写在两个文件夹里面,tensorboard到大的目录下即可

你可能感兴趣的:(tensorflow,深度学习,python,人工智能)