Tensorboard初体验
Tensorflow是一个非常受欢迎的机器学习框架,除了包含了许多已有的机器学习方法,tensorflow当中还包含一个非常有用的可视化工具tensorboard,它将对我们分析训练效果,理解训练框架和优化算法有很大的帮助。
tensorboard界面
首先,我们需要保证电脑上装好了tensorflow与tensorboard,可以用下面的方法安装:
pip install tensorflow tensorboard
我们写一段简单的程序。
import tensorflow as tf with tf.name_scope('graph') as scope: matrix1 = tf.constant([[3., 3.]],name ='matrix1') #1 row by 2 column matrix2 = tf.constant([[2.],[2.]],name ='matrix2') # 2 row by 1 column product = tf.matmul(matrix1, matrix2,name='product') with tf.Session() as sess: writer = tf.summary.FileWriter("logs/", sess.graph) init = tf.global_variables_initializer() sess.run(init)
可以看到,上面的代码中,创建了两个常量,再对他们进行乘法运算。writer =tf.summary.FileWriter(“logs/”, sess.graph)这一行将sess.graph存储在logs/路径下。
代码运行的结果
代码运行完后,我们可以看到生成了一个logs文件夹,里面生成了一个文件events.out.tfevents.1542759633.lisiyuandeMacBook-Pro.local
生成的文件
运行tensorboard –logdir logs
提示了一个地址
进入http://lisiyuandeMacBook-Pro.local:6006看看里面有什么内容。
可以看到,浏览器中生成了一张图,里面有两个矩阵。绿色框里的内容正是我们上面指定的数据。
当重复地开启tensorboard,可能会提示你ERROR: TensorBoard could not bind to port 6006, it was already in use,这是因为之前开启的tensorboard占用了6006端口。
针对这种情况,有两种方法解决:
在启动tensorboard的时候直接指定端口号
杀掉老的端口,重新开启tensorboard
方法1:在启动tensorboard的时候直接指定端口号
直接使用命令
<em>tensorboard --logdir=... --port=6007</em>
就可以了,6007端口是新的端口号,不会与之前的6006端口重复。
方法2:杀掉老的端口,重新开启tensorboard
Linux下查看端口号的命令:netstat -an,这个命令可帮助你看到当前计算机开启的所有端口号。
查看端口具体被那个进程占用:lsof -i :6006
可以看出6006这个端口正在给Python使用
我们查询到端口号6006的PID是16484,直接杀掉这个PID就可以啦。命令:kill-9 16484,之后就可以正常使用tensorboard啦。
====================================================================
本文发表在李思原博客“机器在学习”
原文链接:http://www.siyuanblog.com/?p=1495
欢迎扫码关注我的微信公众号:聚数为塔
=====================================================================
- 点赞
- 收藏
- 关注作者
评论(0)