Al crear un nuevo registrador de tensorboard en pytorch lightning, las dos cosas que se registran de manera predeterminada son la época actual y hp_metric. Pude deshabilitar el registro de hp_metric configurando default_hp_metric=False pero no puedo encontrar nada para deshabilitar el registro de la época. Busqué en los archivos lightning.py, trainer.py y tensorboard.py que tienen el código para el módulo, el entrenador y el registrador de tensorboard y no pude encontrar una llamada de registro para epoch en ninguna parte.
Este comportamiento ocurre incluso tomando el ejemplo de barebones del tutorial de pytorch lightning.
¿Hay alguna manera de deshabilitar este registro de época para evitar el desorden en la interfaz de tensorboard?
Puede deshabilitar la escritura automática de la variable de epoch sobrescribiendo el registrador de tensorboard.
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 a cada registrador. (Puedes ver la descripción aquí ) 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)epoch del diccionario de métricas en log_metrics(metrics, step) que se llama en add_and_log_metrics(scalar_metrics, step=step) . El código se muestra arriba. Puede ver el fragmento completo de la versión larga aquí .