问题
原始代码如下:
# 导入需要的模块
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
from tensorboardX import SummaryWriter
# 构建神经网络
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(1, 10, kernel_size = 5)
self.conv2 = nn.Conv2d(10, 20, kernel_size = 5)
self.conv2_drop = nn.Dropout2d()
self.fc1 = nn.Linear(320, 50)
self.fc2 = nn.Linear(50, 10)
self.bn = nn.BatchNorm2d(20)
def forward(self, x):
x = F.max_pool2d(self.conv1(x), 2)
x = F.relu(x) + F.relu(-x)
x = F.relu(F.max_pool2d(self.conv2_drop(self.conv2(x)), 2))
x = self.bn(x)
x = x.view(-1, 320)
x = F.relu(self.fc1(x))
x = F.dropout(x, training = self.training)
x = self.fc2(x)
x = F.softmax(x, dim = 1)
return x
# 把模型保存为graph
input = torch.rand(32, 1, 28, 28)
model = Net()
with SummaryWriter(log_dir = 'logs', comment = 'Net') as w:
w.add_graph(model, (input, ))
然而运行程序生成日志之后,tensorboard 始终无法显示图片,查了好多博客,基本都是说路径输入不正确的,确认路径输入正确后各种方法都试过了,依然无效,如下图。
原因
如何你也是和我一样,tensorboard只显示两个空白框,那应该是pytorch版本问题,pytorch1.3以上的版本不能很好的支持tensorboard,所以只要把pytorch降到1.3.0就可以了。
原来的环境:
win10
tensorboard 1.14.0
tensorboardX 2.0
tensorflow 1.14.0
tensorflow-estimator 1.14.0
torch 1.5.1
torchvision 0.6.1
python环境:
Python 3.7.7
conda 4.8.3
成功后的环境:
torch 1.3.0
torchvision 0.4.1
其余环境都不变
解决
先卸载高版本的pytorch和torchvision,再安装低版本的。
操作步骤:
- pip uninstall torch
- pip uninstall torchvision
- pip install torch==1.3.0
- pip uninstall torchvision==0.4.1
然后重启服务,运行程序,生成新的日志(注意要把旧的删掉),接着 cd 到 logs 目录所在的同级目录,在命令行输入如下命令。
我的日志是存放在这里的:
logdir右边是日志存放的路径(注意路径要输入正确)
tensorboard --logdir “E:\jupyter notebook\logs”
最后在浏览器(最好使用谷歌浏览器或火狐浏览器)地址输入http://localhost:6006,就能看到图了!
参考: