当pytorch lightning训练器的`log_every_n_steps`达到时,称为什么?

rsl1atfo  于 2023-03-23  发布在  其他
关注(0)|答案(2)|浏览(413)

PL lightning trainer提供了一个参数log_every_n_steps,它声明控制“多久添加一次日志记录行”,但是这里实际调用的函数是什么?我们可以使用下面的示例代码来完成我们自己的日志记录每一步

def training_step(self, batch, batch_idx):
    self.log("performance", {"acc": acc, "recall": recall})

但是训练师在每第n步都做同样的事情吗?

qni6mghb

qni6mghb1#

log_every_n_steps将每n个批次生成一次训练日志。如果on_step=True,则self.log将使用此值。如果您想要一个不太臃肿的日志文件,仅包含每个epoch的结果,则可以使用self.log(metrics, on_step=False, on_epoch=True)

qeeaahzv

qeeaahzv2#

PyTorch Lightning中的Trainer对象有一个log_every_n_steps参数,该参数指定每个日志事件之间的训练步骤数。如果日志间隔大于训练批次数,则不会为每个训练epoch打印日志。
要解决此警告,可以通过为log_every_n_steps设置较低值来减小日志记录间隔,也可以通过增加批大小或训练样本数来增加训练批的数量。
trainer = Trainer(log_every_n_steps=1)

相关问题