由于在配置过程中,添加了TensorBoard X,并且在 main() 中初始化了 SummaryWriter 并将其(变量名 boardio)传入了 train() 或 test() 函数,所以我一开始认为TensorBoard已经被调用可用于训练过程中的曲线可视化,但是在后来调用时发现没有实际数据,查看代码,在 train() 和 test() 内部,并未调用任何 boardio 的 API(如 add_scalar、add_histogram 等)来记录数据。这样虽然会生成事件文件,但事件文件中没有实际数据,TensorBoard 就不会显示任何仪表板。如下图,所以本次我们只简单来讲讲如何在本地浏览器去查看tensorboard。
在服务器下运行tensorboard,在本地浏览器下查看,
tensorboard是深度学习中常用的一种可视化工具,我们可以通过tensorboard更加便捷地实时观测到网络在训练过程中的loss、准确率等的变化曲线,这也方便了我们随时进行网络优化以及训练策略的调整。
但是,在大多数时候,我们连接的远程服务器并不能支持浏览器功能,这样我们就无法直接在远程服务器中查看tensorboard的运行情况。这时我们需要建立本地服务器与远程服务器的通信,将tensorboard的映射端口与本地端口连接起来,如下所示:
ssh -L 本地端口:127.0.0.1:TensorBoard端口 用户名@服务器的IP地址 -p 服务器登录端口
- 本地端口:查看 tensorboard 结果时,在浏览器中输入地址时的端口号
- TensorBoard端口:运行Tensorboard时指定的端口(默认为6006)
- 服务器登陆端口:登录服务器时指定的端口
- 本地终端登陆远程服务器
ssh -L 10086:127.0.0.1:6006 root@region-46.seetacloud.com -p 52163 root@region-46.seetacloud
- 输入这个后会提示输入密码,服务器端口和密码都在服务器页面中有
- 远程服务器中找到log文件所在目录并运行
tensorboard --logdir=data/output/111/dcp_v1 --bind_all
- 在本地浏览器中输入如下地址即可查看tensorboard结果
- http://127.0.0.1:10086