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/

Pocket