【发布时间】:2019-09-22 15:33:31
【问题描述】:
我使用带有 pytorch1.1 的 tensorboard 来记录损失值。
我在每个 for 循环体中都使用writer.add_scalar("loss", loss.item(), global_step)。
但是,在训练处理过程中,绘图图不会更新。
每次想看最新的loss,都得重启tensorboard server。
代码在这里
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets, transforms
# Writer will output to ./runs/ directory by default
writer = SummaryWriter()
transform = transforms.Compose(
[transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]
)
trainset = datasets.MNIST("mnist_train", train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)
model = torchvision.models.resnet50(False)
# Have ResNet model take in grayscale rather than RGB
model.conv1 = nn.Conv2d(1, 64, kernel_size=7, stride=2, padding=3, bias=False)
model.fc = nn.Linear(2048, 10, True)
criterion = nn.CrossEntropyLoss()
epochs = 100
opt = torch.optim.Adam(model.parameters())
niter = 0
for epoch in range(epochs):
for step, (x, y) in enumerate(trainloader):
yp = model(x)
loss = criterion(yp, y)
opt.zero_grad()
loss.backward()
opt.step()
writer.add_scalar("loss", loss.item(), niter)
niter += 1
print(loss.item())
grid = torchvision.utils.make_grid(images)
writer.add_image("images", grid, 0)
writer.add_graph(model, images)
writer.close()
训练还在继续,全局步数已经是3594了,但是tensorboard还是显示在1900左右。
【问题讨论】:
标签: tensorflow pytorch tensorboard