环境: Windows、python3、jupyter notebook、anaconda、tensorflow(CPU版本)
我用jupyter写好程序,生成的文件存放在logs文件夹中,想用cmd命令行模式启动tensorboard。
但是今天使用tensorboard的时候出现了一堆问题,花了半个下午才解决,这里记录一下其中的典型问题:
tensorFlow的问题:
在使用TensorBoard可视化的时候,基于tensorflow写的程序只能跑一次的情况,就是第一次运行没问题,第二次再运行就报错了,试了几次都是这样。
解决方案;可能是在使用TensorBoard进行可视化的时候,出当前路径下不能存在一个以上的events文件,可以手动删除第一次运行生成的文件也可以在程序后面加上tf.reset_default_graph()
tensorboard应用的问题:
(1)报错:'tensorboard' 不是内部或外部命令,也不是可运行的程序
解决方案:找到tensorboard.exe在电脑文件中的位置,我的电脑是在如图所示
然后把这个位置添加到系统变量
点击计算机右键属性进入高级系统设置中的环境变量,选中系统变量中的PATH,将tensorboard的地址添加进去。
(2)报错:tensorboard: error: unrecognized arguments: C:\Users\85007\Desktop\ml_python_practice\logs
解决方案:出错的原因是没有切换到logs的上一级目录执行导致的
修正为
注意在Mac电脑中才是'logs',在Windows电脑中是 = logs
(3)报错:ValueError: Invalid format string
解决方案:按照报错提示修改源码,把小写改成大写。
michealblank(CSDN作者) 提出:这里的按照提示打开了manager.py文件,在50行的位置serialize=lambda dt: int(dt.strftime("%s"))。先搜了一下python的lambda 的表达式用法,知道了这个dt代表前一行的datetime类型。搜了一下datetime的strftime的方法的格式化方法(文章见链接https://blog.csdn.net/shomy_liu/article/details/44141483),查到格式化符号里竟然没有%s,只有%S,有大小写区分。于是把这个%s修改为%S,(文章见链接https://blog.csdn.net/michealblank/article/details/88085243 )再使用命令tensorboard --logdir=log ,结果竟然通过了。
最后在浏览器地址输入http://localhost:6006,终于看到图了!