Jupyter Notebook指定新logdir后Tensorboard仍显示旧结果问题
问题成因
Jupyter 环境下的 %tensorboard 魔法命令默认会复用当前已经启动、占用默认端口的 TensorBoard 进程,不会因为传入新的 --logdir 参数就自动终止旧进程、加载新目录的日志。第二次执行启动命令时,程序检测到已有TensorBoard实例在运行,就直接返回了旧实例的访问入口,所以页面始终显示第一次加载的旧面板内容。
对应解决方法
可以根据实际需求选以下任意一种方案:
- 方案1:同时保留两个面板
第二次启动新面板时额外指定一个未被占用的端口,避开第一个实例的默认6006端口,就会启动独立的新进程加载对应日志,示例命令:
启动后两个面板分别运行在不同端口,互不干扰。%tensorboard --logdir ./saved_models/tutorial5/ResNetLocal/lightning_logs/version_0/ --port 6007 - 方案2:只保留新面板
先终止已经运行的旧TensorBoard进程,再执行新目录的启动命令即可,终止进程可以直接用内置命令:
也可以在第二次启动命令里加%tensorboard --stop--reuse_existing=False参数,强制不复用已有实例,示例:%tensorboard --logdir ./saved_models/tutorial5/ResNetLocal/lightning_logs/version_0/ --reuse_existing=False - 方案3:同面板查看多份日志
如果不需要分开展示两个面板,可以直接在启动时把多个日志目录用逗号拼接传给--logdir参数,TensorBoard会自动识别不同目录的训练run,在同一个面板里分类展示,不需要重复启动实例,示例命令:%tensorboard --logdir saved_models/tutorial5/GoogleNetLocal/lightning_logs/version_2/,./saved_models/tutorial5/ResNetLocal/lightning_logs/version_0/
问题现象参考

内容的提问来源于stack exchange,提问作者nomorewords
相关产品推荐
相关产品推荐

