• 【项目实战】本地访问远程服务器上Tensorboard



                            本地访问远程服务器上Tensorboard                         

    YOLOv5训练过程中,会在runs/train/XX(配置参数中指定的文件名称 name)下生成一个events文件,熟悉TensorFlow的同学会知道该文件可以用Tensor board打开,并且记录了训练过程中的一些事件,包括收敛曲线、训练(验证)指标等(取决于代码中记录了哪些内容)。在YOLOv5的源码中,记录了指标(精度、准确度、召回率等)、训练(验证)过程的收敛曲线,以及学习率的变化情况。

    image-20210301145842243

    问题描述

    本机是windows系统,YOLOv5的训练程序及相关文件在远端服务器上。通常,会采用Xshell/Termius等软件登录服务器进行相关指令的操作。

    如上图所示,YOLOv5训练过程中,在结果文件中会生成event文件,该文件记录了训练过程中的相关情况,对于发现训练过程中过拟合、欠拟合等现象大有裨益。因此,在训练过程中可以使用该文件,并通过tensorboard的方式对训练过程的情况进行检视。指令如下,值得注意的是log_dir指的是文件的目录,而不是文件的路径。

    tensorboard --logdir=log_dir
    

    image-20210301151830526

    此时,可以在浏览器中输入

    http://localhost:6006 
    

    进行查看。如果目标服务器中有VNC,也愿意用远程桌面的方式访问tensor board,可忽略本教程。也就是说,此时使用服务器的浏览器访问上述网址是可以访问到的,但是如果使用本地电脑的浏览器是访问不到的。本篇的目的在于使用本地计算机访问远程目标服务器上tensorboard。

    解决方案

    适用情况:

    • Pytorch / TensorFlow
    • 需要软件XShell

    建立ssh隧道,实现远程端口到本机端口的传递。远程服务器被监听的端口默认为6006端口,本机电脑任意一个非占用的端口都可以作为隧道建立的端口。

    在XShell的目标服务器上右键选择 属性->ssh->隧道->添加,如下左图所示,在弹出的转移规则窗口中进行如下设置,并选择确定。其中源主机填127.0.0.1(表示本机),侦听端口可以任意设置一个未被占用的端口号,比如6006;目标主机表示本地服务器,目标端口为6006,即tensorboard设置的被监听的端口。

    image-20210301153848457

    之后,选择连接。

    在服务器输入命令,如果-port设置为其他端口,上面目标主机的目标端口也应该发生相应的修改。

    tensorboard --logdir=log_dir -port 6006
    

    此时,复制链接到本地浏览器便可以成功访问tensorboard。

    http://localhost:6006 
    

    页面如下:

    image-20210301153710784

    作者:墨殇浅尘

    -------------------------------------------

    算法届的小学生,虔诚而不迷茫,做一个懂生活并有趣的人!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个 [推荐] 噢! 欢迎共同交流机器学习,机器视觉,深度学习~

    欢迎转载,转载请声明出处!

  • 相关阅读:
    Teradata中fastload使用
    Teradata 的rank() 和 row_number() 函数
    Oracle 10g下载链接
    SSH时不需输入密码
    Linux环境下GIT初次使用
    模块与包的概念
    迭代器 生成器
    Python
    Python
    函数式编程-尾递归、尾调用
  • 原文地址:https://www.cnblogs.com/monologuesmw/p/14465117.html
Copyright © 2020-2023  润新知