Tensorboard 实例列为 运行,而实际进程已失效

Tensorboard instances listed as running while the actual processes are defunct

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

Known TensorBoard instances:

  • port 6006: logdir /home/ai-mining/AI_Mining/logs/train (started 21:49:59 ago; pid 32470)
  • port 6006: logdir /home/ai-mining/AI_Mining/logs/ (started 1:20:19 ago; pid 34361)

如果这样做 !kill 32470 !kill 34361

/bin/sh: 1: kill: No such process

/bin/sh: 1: kill: No such process

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

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

没有要终止的此类进程。 我应该提到 log_dir 中存储数据的日志是空的。 此外,在这种情况下,唯一的选择是重新加载 %reload_ext tensorboard 而不是加载。这不起作用,因为实际进程已死。

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

这就是最终解决我的问题的方法。如果有更好的方法来解决这个问题,我会很感兴趣。 tensorboard 跟踪目录 /tmp/.tensorboard-info 中的进程 ID(甚至是已失效的进程 ID)。如果此文件夹不在 /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 运行ning 的一个实例,并在需要时重新加载它。使用以下方法创建新文件夹:

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

每个 运行 将单独列在 Tensorboard 中并可以可视化。