TensorBoard页面一片空白问题解决

在PyTorch 1.3.1中输出TensorBoard日志,TensorBoard 2.1.0在Windows环境下显示页面一篇空白。

TensorBoard页面一片空白问题解决

1 问题描述

TensorBoard是TensorFlow的一款基于Web的机器学习可视化工具。

img
  • TensorBoard功能示意

PyTorch对TensorBoard也进行了兼容,但我使用最新版的PyTorch 1.3.1输出日志文件,在TensorBoard 2.1.0中却无法显示,页面打开一片空白。

PyTorch官方文档

torch.utils.tensorboard

我使用官方文档中的一个极小测试用例进行功能测试:

1
2
3
4
5
6
7
8
9
10
from torch.utils.tensorboard import SummaryWriter
import numpy as np

writer = SummaryWriter()

for n_iter in range(100):
writer.add_scalar('Loss/train', np.random.random(), n_iter)
writer.add_scalar('Loss/test', np.random.random(), n_iter)
writer.add_scalar('Accuracy/train', np.random.random(), n_iter)
writer.add_scalar('Accuracy/test', np.random.random(), n_iter)

按照官方文档的说法,安装tensorboard并运行:

1
2
pip install tensorboard
tensorboard --logdir=runs

但结果是默认的 http://localhost:6006/ 显示的页面一片空白,命令行也没有任何报错提示。

2 问题分析

根据网上各类博客和贴文,我测试了修改相对路径为绝对路径、更新PyTorch版本等方法,均无效。

经测试,Ubuntu服务器上默认安装的TensorBoard最新版本为2.0.2,运行和显示正常。

我将服务器上一切正常的日志下载到本地来测试,依旧是一片空白,由此锁定问题在本地的TensorBoard上。

我将Windows上TensorBoard的版本从默认的最新版2.1.0降级至2.0.2后,运行和显示正常。

推测原因可能和PyTorch生成的日志尚未适配最新版TensorBoard的标准有关。

3 解决方案

将Windows上TensorBoard的版本从默认的最新版2.1.0降级至2.0.x。

2020.3.18更新:

更新说明:应读者来信,给出详细的操作方法。

建议通过conda指定版本安装。

首先,切换到conda环境:

1
conda activate <your_env>

切换后,通过命令指定安装2.0版本的tensorboard(推荐):

1
conda install tensorboard=2.0

如不熟悉conda命令,也可通过pip指定版本安装:

1
pip install tensorboard==2.0

另外,可以通过conda search命令查询现有可下载的版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
conda search tensorboard

Loading channels: done
# Name Version Build Channel
tensorboard 1.7.0 py35he025d50_1 pkgs/main
tensorboard 1.7.0 py36he025d50_1 pkgs/main
tensorboard 1.8.0 py35he025d50_0 pkgs/main
tensorboard 1.8.0 py36he025d50_0 pkgs/main
tensorboard 1.9.0 py35he025d50_0 pkgs/main
tensorboard 1.9.0 py36he025d50_0 pkgs/main
tensorboard 1.10.0 py35he025d50_0 pkgs/main
tensorboard 1.10.0 py36he025d50_0 pkgs/main
tensorboard 1.11.0 py36he025d50_0 pkgs/main
tensorboard 1.12.0 py36he025d50_0 pkgs/main
tensorboard 1.12.1 py36h33f27b4_0 pkgs/main
tensorboard 1.12.2 py36h33f27b4_0 pkgs/main
tensorboard 1.13.1 py36h33f27b4_0 pkgs/main
tensorboard 1.13.1 py37h33f27b4_0 pkgs/main
tensorboard 1.14.0 py36he3c9ec2_0 pkgs/main
tensorboard 1.14.0 py37he3c9ec2_0 pkgs/main
tensorboard 1.15.0 pyhb230dea_0 pkgs/main
tensorboard 2.0.0 pyhb230dea_0 pkgs/main
tensorboard 2.0.0 pyhb38c66f_1 pkgs/main
tensorboard 2.1.0 py2_0 pkgs/main
tensorboard 2.1.0 py3_0 pkgs/main