Pytorchでのログの取り方

学習しているとエポックごとの誤差やテストデータセットでのF1 scoreなどを継続的に記録したいと思うことがある.

こんなときにはwriter.add_scalarを使うのが良い.

下記にサンプルコードを載せる.

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("./logs")
for epoch in range(EPOCH):
for i, data in enumerate(self.train_loader, 0):
inputs = data
# zero the parameter gradients
optimizer.zero_grad()
# forward + backward + optimize
outputs = temp_net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
loss = loss.detach().numpy()
losses.append(loss)
writer.add_scalar("loss", loss, epoch*len(self.train_loader)+i)

学習後,

tensorboard —logdir=./logs

あるいは,AWS EC2やCloud9を使っているときは

tensorboard —bind_all —logdir ./logs

を打ち込み,ブラウザに以下を打ち込むとtensorboardにログが表示される.

http://xx.xxx.xx.xxx:6006/