Ejemplo n.º 1
0
    def __init__(
        self,
        metric_names: List[str] = None,
        log_on_batch_end: bool = True,
        log_on_epoch_end: bool = True,
        **logging_params,
    ):
        """
        Args:
            metric_names (List[str]): list of metric names to log,
                if none - logs everything
            log_on_batch_end (bool): logs per-batch metrics if set True
            log_on_epoch_end (bool): logs per-epoch metrics if set True
        """
        super().__init__(
            order=CallbackOrder.Logging,
            node=CallbackNode.Master,
            type=CallbackType.Experiment,
        )
        self.metrics_to_log = metric_names
        self.log_on_batch_end = log_on_batch_end
        self.log_on_epoch_end = log_on_epoch_end

        if not (self.log_on_batch_end or self.log_on_epoch_end):
            raise ValueError("You have to log something!")

        if (self.log_on_batch_end and not self.log_on_epoch_end) \
                or (not self.log_on_batch_end and self.log_on_epoch_end):
            self.batch_log_suffix = ""
            self.epoch_log_suffix = ""
        else:
            self.batch_log_suffix = "_batch"
            self.epoch_log_suffix = "_epoch"

        self.logger = Logger(**logging_params)
Ejemplo n.º 2
0
    def _pre_experiment_hook(self, experiment: Experiment):
        monitoring_params = experiment.monitoring_params

        log_on_batch_end: bool = monitoring_params.pop("log_on_batch_end",
                                                       False)
        log_on_epoch_end: bool = monitoring_params.pop("log_on_epoch_end",
                                                       True)

        self._init(
            log_on_batch_end=log_on_batch_end,
            log_on_epoch_end=log_on_epoch_end,
        )
        self.logger = Logger(**monitoring_params)
Ejemplo n.º 3
0
import random

from alchemy import Logger

# insert your personal token here
token = "..."
project = "default"

for gid in range(1):
    group = f"group_{gid}"
    for eid in range(2):
        experiment = f"experiment_{eid}"
        logger = Logger(
            token=token,
            experiment=experiment,
            group=group,
            project=project,
        )
        for mid in range(4):
            metric = f"metric_{mid}"
            # let's sample some random data
            n = 300
            x = random.randint(-10, 10)
            for _ in range(n):
                logger.log_scalar(metric, x)
                x += random.randint(-1, 1)
        logger.close()