PyTorch 闪电:同一张量板图中的多个标量例如训练和有效损失

问题描述

使用 PyTorch Tensorboard,我可以在单个 Tensorboard 图中记录我的训练和有效损失,如下所示:

writer = torch.utils.tensorboard.SummaryWriter()

for i in range(1,100):
    writer.add_scalars('loss',{'train': 1 / i},i)

for i in range(1,{'valid': 2 / i},i)

enter image description here

如何使用 Pytorch Lightning 的认 Tensorboard 记录器实现相同的效果

def training_step(self,batch: Tuple[Tensor,Tensor],_batch_idx: int) -> Tensor:
    inputs_batch,labels_batch = batch

    outputs_batch = self(inputs_batch)
    loss = self.criterion(outputs_batch,labels_batch)

    self.log('loss/train',loss.item())  # creates separate graph

    return loss

def validation_step(self,_batch_idx: int) -> None:
    inputs_batch,labels_batch)

    self.log('loss/valid',loss.item(),on_step=True)  # creates separate graph

解决方法

文档将其描述为 self.logger.experiment.some_tensorboard_function(),其中 some_tensorboard_function 是 tensorboard 提供的函数,因此对于您要使用的问题

self.logger.experiment.add_scalars() 

可以找到 pytorch-lightning 的 Tensorboard 文档 here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...