def after_iteration()

in src/sagemaker_xgboost_container/checkpointing.py [0:0]


    def after_iteration(self, model, epoch=0, evals_log=None):
        if self.rank != 0 or (not evals_log) or self.period is False or self.period == 0:
            return
        i = self.iteration
        if i % self.period == 0 or i + 1 == self.start_iteration or i + 1 == self.end_iteration:
            evaluation_monitor = EvaluationMonitor(self.rank, self.period, self.show_stdv)
            msg: str = ""
            for data, metric in evals_log.items():
                for metric_name, log in metric.items():
                    stdv: Optional[float] = None
                    if isinstance(log[-1], tuple):
                        score = log[-1][0]
                        stdv = log[-1][1]
                    else:
                        score = log[-1]
                    msg += evaluation_monitor._fmt_metric(data, metric_name, score, stdv)
            msg += "\n"
            rabit.tracker_print("[%d]\t%s\n" % (i + self.start_iteration, msg))