![](/img/trans.png)
[英]Pytorch Lightning Tensorboard logger automatically adds "epoch" scalar
[英]How do you prevent the tensorboard logger in pytorch lightning from logging the current epoch?
在 pytorch 闪电中创建新的张量板记录器时,默认记录的两件事是当前纪元和 hp_metric。 我可以通过设置default_hp_metric=False
来禁用 hp_metric 日志记录,但我找不到任何东西来禁用纪元的日志记录。 我在 Lightning.py、trainer.py 和 tensorboard.py 文件中搜索了包含模块代码、trainer 和 tensorboard logger 的文件,但在任何地方都找不到 epoch 的日志记录调用。
即使采用 pytorch 闪电教程中的准系统示例,也会发生这种行为。
有没有办法禁用此纪元记录以防止张量板界面混乱?
您可以通过覆盖 tensorboard logger 来禁用自动写入epoch
变量。
from pytorch_lightning import loggers
from pytorch_lightning.utilities import rank_zero_only
class TBLogger(loggers.TensorBoardLogger):
@rank_zero_only
def log_metrics(self, metrics, step):
metrics.pop('epoch', None)
return super().log_metrics(metrics, step)
epoch
vs global_step
图添加到每个记录器。 (你可以在这里看到描述) if step is None: # added metrics for convenience scalar_metrics.setdefault("epoch", self.trainer.current_epoch) step = self.trainer.global_step # log actual metrics self.trainer.logger.agg_and_log_metrics(scalar_metrics, step=step)
add_and_log_metrics(scalar_metrics, step=step)
中调用的log_metrics(metrics, step)
中的度量字典中弹出epoch
变量。 代码如上所示。 你可以在这里看到完整的长版本片段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.