当前位置:   article > 正文

【OpenGait 开启 AutoDL 云服务器的 TensorBoard 可视化】_autodl tensorboard服务未启动,请在终端启动tensorboard,

autodl tensorboard服务未启动,请在终端启动tensorboard,

最近在使用AutoDL云服务器跑步态识别的代码,用的是开放步态识别框架OpenGait,记录一下自己跑代码的步骤和遇到的问题以及解决方式。

这篇文章主要记录OpenGait开启 AutoDL 云服务器的TensorBoard 可视化的步骤和遇到的问题以及解决方式。


一、下载所需工具包

1、查看自己的AutoDL是否已经安装了tensorflow 和tensorboard

12/14更新:没有tensorflow也可以,新开了一台默认没有tensorflow的服务器,TensorBoard仍然可以可视化

pip list
  • 1

tensorflow和tensorboard
2、如果没有安装,下载安装(由于AutoDL默认使用国内镜像加速下载,所以直接输入下面的命令即可)

pip install tensorflow==2.4.0

pip install tensorboard==2.6.0
  • 1
  • 2
  • 3

二、找到可视化所需要的event文件

OpenGait里涉及到的tensorboard代码的文件路径为:/root/OpenGait/opengait/utils/msg_manager.py
root是AutoDL的根目录,我把OpenGait放在了AutoDL的根目录下,如下图所示:
我的OpenGait目录
msg_manager.py文件中关于tensorboard的描述如下:

from torch.utils.tensorboard import SummaryWriter

def init_manager(self, save_path, log_to_file, log_iter, iteration=0):
        self.iteration = iteration
        self.log_iter = log_iter
        mkdir(osp.join(save_path, "summary/"))
        self.writer = SummaryWriter(
            osp.join(save_path, "summary/"), purge_step=self.iteration)
        self.init_logger(save_path, log_to_file)

def write_to_tensorboard(self, summary):

        for k, v in summary.items():
            module_name = k.split('/')[0]
            if module_name not in self.writer_hparams:
                self.log_warning(
                    'Not Expected --Summary-- type [{}] appear!!!{}'.format(k, self.writer_hparams))
                continue
            board_name = k.replace(module_name + "/", '')
            writer_module = getattr(self.writer, 'add_' + module_name)
            v = v.detach() if is_tensor(v) else v
            v = vutils.make_grid(
                v, normalize=True, scale_each=True) if 'image' in module_name else v
            if module_name == 'scalar':
                try:
                    v = v.mean()
                except:
                    v = v
            writer_module(board_name, v, self.iteration)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

不需要看懂代码,我们只需要知道把可视化所需要的event文件记录到一个summary文件里去了,TensorBoard 需要读取event文件才能进行可视化。summary文件的路径为:
/root/OpenGait/output/CASIA-B/Baseline/GaitBase_DA/summary
注:该路径根据跑的方法不同也会变,因为我跑的是GaitBase所以路径是这样,如果跑GaitPart,那么summary文件的路径为:
/root/OpenGait/output/CASIA-B/GaitPart/GaitPart/summary
总之,在 /root/OpenGait/output/CASIA-B/ 下面找就行。

summary文件下的event文件如图所示:(每跑一次就会记录一次)
在这里插入图片描述

三、开启 TensorBoard 可视化

event文件也找到了,接下来我们开启TensorBoard 可视化。
OpenGait框架已经写好了TensorBoard 可视化相关代码,我们只需要开启即可。
开启 TensorBoard 可视化的代码如下:

tensorboard --logdir=/root/OpenGait/output/CASIA-B/Baseline/GaitBase_DA/summary
  • 1

开启成功显示如下图:
开启成功显示
让我们访问http://localhost:6006/进行查看,而我们进入这个网址是查看不了可视化界面的,这里请注意!!!

AutoDL实例中已内置了TensorBoard工具
①点击实例监控
实例监控
②进入监控界面,点击TensorBoard
点击TensorBoard
③进入TensorBoard界面,却发现显示No dashboards are active for the current data set. 这是怎么回事呢?
No dashboards are active for the current data set.
界面显示TensorBoard没有读取到任何event文件。查看官方文档发现,AutoDL的TensorBoard工具默认从/root/tf-logs/路径读取event文件

在这里插入图片描述
tf-logs目前是空的,当然读取不到event文件了,所以要想读取event文件的方法之一是,把summary文件里的event文件复制到tf-logs里去。

尝试后,成功可视化:
在这里插入图片描述

注意图片左下角的路径,这才是AutoDL的TensorBoard读取event文件的路径,而这个路径是无法通过tensorboard --logdir=/root/OpenGait/output/CASIA-B/Baseline/GaitBase_DA/summary的命令更改的。

那如果想切换目录怎么办?我们可以
①首先结束默认启动的TensorBoard进程,执行命令:

ps -ef | grep tensorboard | awk '{print $2}' | xargs kill -9
  • 1

②然后在终端中执行以下命令启动TensorBoard:

tensorboard --port 6007 --logdir /path/to/your/tf-logs/direction

# 对于我来说执行的实际命令是
tensorboard --port 6007 --logdir /root/OpenGait/output/CASIA-B/Baseline/GaitBase_DA/summary
  • 1
  • 2
  • 3
  • 4

更改路径后运行的结果如下:
在这里插入图片描述

其实是因为TensorBoard默认占用的端口号是6006,被默认的/root/tf-logs/占用了,所以我们使用其他的logs文件夹时,需要更改一个新的端口。


总结

总结一下就是,我们可以通过3种办法进行可视化。
1、使用AutoDL里TensorBoard的默认路径:把summary文件里的event文件复制到tf-logs里去。

2、使用AutoDL里TensorBoard的默认路径:在OpenGait的msg_manager.py文件里更改summary文件的路径为tf-logs文件的路径。(不建议这么做,没有1、3好用)

3、不使用AutoDL里TensorBoard的默认路径:①先结束默认启动的TensorBoard进程,②然后开启一个指向summary文件路径的、占用除6006外的端口的新的TensorBoard进程。

欢迎使用OpenGait研究步态识别的伙伴进行交流

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/436951
推荐阅读
  

闽ICP备14008679号