Пример #1
0
 def _format_message(self, state: State):
     message = [""]
     mode_metrics = utils.split_dict_to_subdicts(
         dct=state.epoch_metrics,
         prefixes=list(state.loaders.keys()),
         extra_key="_base",
     )
     metrics = self._format_metrics(mode_metrics)
     for key, value in metrics.items():
         message.append(f"{state.epoch}/{state.num_epochs} "
                        f"* Epoch {state.global_epoch} ({key}): {value}")
     message = "\n".join(message)
     return message
Пример #2
0
    def on_epoch_end(self, state: State):
        """Translate epoch metrics to Weights & Biases"""
        extra_mode = "_base"
        splitted_epoch_metrics = utils.split_dict_to_subdicts(
            dct=state.epoch_metrics,
            prefixes=list(state.loaders.keys()),
            extra_key=extra_mode,
        )

        if self.log_on_epoch_end:
            self._log_metrics(metrics=splitted_epoch_metrics[extra_mode],
                              step=state.global_epoch,
                              mode=extra_mode,
                              suffix=self.epoch_log_suffix,
                              commit=True)
Пример #3
0
    def on_epoch_end(self, runner: IRunner):
        """Translate epoch metrics to Alchemy."""
        extra_mode = "_base"
        splitted_epoch_metrics = utils.split_dict_to_subdicts(
            dct=runner.epoch_metrics,
            prefixes=list(runner.loaders.keys()),
            extra_key=extra_mode,
        )

        if self.log_on_epoch_end:
            self._log_metrics(
                metrics=splitted_epoch_metrics[extra_mode],
                step=runner.global_epoch,
                mode=extra_mode,
                suffix=self.epoch_log_suffix,
            )
Пример #4
0
    def on_epoch_end(self, runner: IRunner):
        """Translate epoch metrics to Weights & Biases."""
        extra_mode = "_base"
        splitted_epoch_metrics = utils.split_dict_to_subdicts(
            dct=runner.epoch_metrics,
            prefixes=list(runner.loaders.keys()),
            extra_key=extra_mode,
        )

        if self.log_on_epoch_end:
            if extra_mode in splitted_epoch_metrics.keys():
                # if we are using OptimizerCallback
                self._log_metrics(
                    metrics=splitted_epoch_metrics[extra_mode],
                    step=runner.global_epoch,
                    mode=extra_mode,
                    suffix=self.epoch_log_suffix,
                    commit=True,
                )
Пример #5
0
    def on_epoch_end(self, state: "State"):
        """Translate epoch metrics to tensorboard"""
        if state.logdir is None:
            return

        if self.log_on_epoch_end:
            per_mode_metrics = utils.split_dict_to_subdicts(
                dct=state.epoch_metrics,
                prefixes=list(state.loaders.keys()),
                extra_key="_base",
            )

            for mode, metrics in per_mode_metrics.items():
                # suffix = "" if mode == "_base" else "/epoch"
                self._log_metrics(
                    metrics=metrics,
                    step=state.global_epoch,
                    mode=mode,
                    suffix="/epoch",
                )

        for logger in self.loggers.values():
            logger.flush()