python - 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()
或以任何方式解决我的问题?我现在无法连接到张量板。提前致谢。
解决方案
这最终解决了我的问题。如果有更好的方法来解决这个问题,我会很感兴趣。张量板跟踪目录中的进程 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 中,并且可以可视化。
推荐阅读
- c# - 如何将单击“是”的确认框传递给单独的视图模型?如何以 MVVM 方式显示对话框?
- html - 是否可以在 Angular/TypeScript 中的 HTMLElement.style.variable 上使用变量?
- javascript - 将两个值相加来改变不同的事件
- google-chrome - 如何在 cypress 中使用旧版 chrome 运行测试
- amazon-web-services - AWS“Lambda”需要更多 CPU/RAM - 触发 EC2“工作?”
- c# - System.IO.Copy 操作间歇性地在 .Net 4.0 C# 控制台应用程序中给出拒绝访问错误
- javascript - 阻止导航到某些页面/路线
- android - 带有图像的文本视图(不是来自,可绘制)
- docker - docker.socket:在保护 docker daemon socket 后失败,结果为“service-start-limit-hit”
- graphql - CommitAuthor 上的 Github GraphQL API v4 查询