当前位置: 首页 > article >正文

在 WSL 中使用 Jupyter Notebook 的 TensorBoard 启动问题与解决方法

在 WSL(Windows Subsystem for Linux)环境中,通过 Jupyter Notebook 使用

%tensorboard --logdir outputs

有时会出现 “Timed out waiting for TensorBoard to start” 错误。常见原因通常是先前的 TensorBoard 进程尚未结束,占用了默认端口 (6006) 或相关资源。以下列出几种常用解决方法。


1. 终止已有的 TensorBoard 进程

1.1 在 Notebook / 终端手动终止

  1. 查看所有正在运行的 TensorBoard 进程:
    ps aux | grep tensorboard
    
    (也可用 lsof -i:6006netstat -tulpn | grep 6006 查看端口占用)
  2. 找到对应的 PID 后,用 kill 或 kill -9 终止进程:
    kill <PID>
    # 或者
    kill -9 <PID>
    
  3. 然后重新在 Notebook 中运行:
    %tensorboard --logdir=outputs --port=6006
    

1.2 在 Notebook 中“自动”清理

可以在 Notebook 中一键清理所有带有 tensorboard 关键字的进程:

import os
os.system("pkill -f 'tensorboard'")

然后再执行:

%tensorboard --logdir=outputs

2. 更换端口号

若端口 6006 被占用,也可以显式指定新的端口号,例如:

%tensorboard --logdir=outputs --port=6007

若依然出现超时,可换其他端口,或让系统自动分配端口:

%tensorboard --logdir=outputs --port=0

如果需要从 Windows 浏览器访问 TensorBoard,记得加上 --host=0.0.0.0


3. 处理“僵尸进程(defunct)”

ps aux | grep tensorboard 里若出现 <defunct>,说明进程已退出但父进程尚未回收:

  1. 查找并结束父进程

    ps -ef | grep <子进程PID>
    kill <父进程PPID>
    

    或者在 Jupyter Notebook 中选择 Kernel -> Restart 重启内核。

  2. 重启对应的 Jupyter Notebook

    jupyter notebook list
    # 找到该 Notebook 进程后 kill,然后重新启动
    
  3. 重启整个 WSL 子系统(若无从下手时)

    wsl --shutdown
    

    然后重新打开 WSL/Ubuntu。


小结

  1. 端口被占用僵尸进程 是导致 TensorBoard 启动超时的常见原因。
  2. 常用处理方式:
    • 手动或自动 kill 旧进程,释放端口
    • 显式更换端口,或令系统自动分配端口
    • 若出现 <defunct> 状态,需要终止 / 重启父进程或 Kernel
    • 必要时可重启整个 WSL 子系统
  3. 建议:及时清理不再使用的 TensorBoard 进程,或在 Notebook 中定制“一键清理脚本”简化操作。

以上就是在 WSL 中使用 Jupyter Notebook 时,TensorBoard 可能遇到的启动超时问题及主要解决思路。祝学习与调试顺利!


http://www.kler.cn/a/501713.html

相关文章:

  • ubuntu20下编译linux1.0 (part1)
  • 快速上手 INFINI Console 的 TopN 指标功能
  • OpenCV相机标定与3D重建(51)对 3x3 矩阵进行 RQ 分解(RQ Decomposition)函数RQDecomp3x3()的使用
  • python 轮廓 获取环形区域
  • LabVIEW水位监控系统
  • Centos9-SSH免密登录配置-修改22端口-关闭密码登录-提高安全性
  • GIN模型详解及代码复现
  • 【初体验】【学习】Web Component
  • 晶晨S905L3A/S905L3AB-ADB-ROOT-指示灯-安卓9-当贝桌4.0精简线刷固件包
  • 模拟ic入门——设计一个带隙基准Bandgap(二)性能参数和电路仿真
  • 为AI聊天工具添加一个知识系统 之30 概念整体运营平台:中间架构层的broker service的API模型
  • 0050.ssm+小程序高校订餐系统+论文
  • 计算机网络相关习题整理
  • 前端开发:form中的标签
  • PyCharm 的安装与使用(Window)
  • esp32 mqtt连接阿里云细节配置
  • 服务器的数据上传到阿里云的对象存储(OSS)数据桶
  • Python爬虫基础——selenium模块进阶(显示等待和隐式等待)
  • 深入浅出 OpenResty
  • 策略模式详解
  • Lambda离线实时分治架构深度解析与实战
  • 用于与多个数据库聊天的智能 SQL 代理问答和 RAG 系统(2) —— 从 PDF 文档生成矢量数据库 (VectorDB),然后存储文本的嵌入向量
  • CAPL如何设置TCP/IP传输层动态端口范围
  • 数据链路层-STP
  • 《分布式光纤传感:架设于桥梁监测领域的 “智慧光网” 》
  • [笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server