首页 > 解决方案 > Tensorboard 实例被列为正在运行,而实际进程已失效

问题描述

在 Jupyter 笔记本中: notebook.list()显示:

已知的 TensorBoard 实例:

  • 端口 6006:logdir /home/ai-mining/AI_Mining/logs/train(21:49:59 前开始;pid 32470)
  • 端口 6006:logdir /home/ai-mining/AI_Mining/logs/(1:20:19 前开始;pid 34361)

如果这样做!kill 32470 !kill 34361

/bin/sh: 1: kill: 没有这个进程

/bin/sh: 1: kill: 没有这个进程

事实上,如果我在终端中列出 tensorboard 的进程:ps -ax |grep tensorboard

3788 分/9 S+ 0:00 grep --color=auto tensorboard

没有这样的进程可以杀死。我应该提到存储数据的 log_dir 中的日志是空的。在这种情况下,唯一的选择是重新加载%reload_ext tensorboard而不是加载。这是行不通的,因为实际过程已经死了。

如何清理列出的日志notebook.list()或以任何方式解决我的问题?我现在无法连接到张量板。提前致谢。

标签: pythonjupytertensorboard

解决方案


这最终解决了我的问题。如果有更好的方法来解决这个问题,我会很感兴趣。张量板跟踪目录中的进程 id(甚至是已失效的)/tmp/.tensorboard-info。如果此文件夹不在 /tmp 文件夹中,可以使用列出临时位置

import tempfile
import os
import shutil 
path = os.path.join(tempfile.gettempdir(), ".tensorboard-info") 
shutil.rmtree(path) ##this removes the folder recursively
!fuser 6006/tcp -k #clear the port 

我删除了.tensorboard-info文件夹,清除了 logs-dir 文件夹并重新启动了 Tensorboard。

为避免反复清理,可以将日志文件保存在 logs-dir 文件夹中的单独文件夹中,并仅保持 Tensorboard 的一个实例运行,并在需要时重新加载它。使用以下命令创建新文件夹:

import datetime
TensorBoard(histogram_freq=1, log_dir='/home/my_project_directory/logs/'+ datetime.now().strftime("%Y%m%d-%H%M%S"))

每次运行都将单独列在 Tensorboard 中,并且可以可视化。


推荐阅读