Lightning-AI / pytorch-lightning

Pretrain, finetune and deploy AI models on multiple GPUs, TPUs with zero code changes.

Home Page:https://lightning.ai

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make TensorBoardLogger default version creation ascii sortable

jdenhof opened this issue · comments

Description & Motivation

Make it so it by default when opening Tensorboard in the default log directory runs are stored in ascending or descending order.

Pitch

The current TensorBoardLogger default version stamping does not provide a graceful view when sorting experiment runs from TensorBoard.

I think this could be easily solved by putting a default parameter for the TensorBoardLogger, something like n_version_placeholders = 4, and changing the default when getting the log_dir:

    def log_dir(self) -> str:
        """The directory for this run's tensorboard checkpoint.

        By default, it is named ``'version_${self.version}'`` but it can be overridden by passing a string value for the
        constructor's version parameter instead of ``None`` or an int.

        """

        # CHANGED else f"version_{self.version}" to  f"version_{self.version:0{self.n_version_placeholders}d}"
        version = self.version if isinstance(self.version, str) else f"version_{self.version:0{self.n_version_placeholders}d}"
        log_dir = os.path.join(self.root_dir, version)
        if isinstance(self.sub_dir, str):
            log_dir = os.path.join(log_dir, self.sub_dir)
        log_dir = os.path.expandvars(log_dir)
        log_dir = os.path.expanduser(log_dir)
        return log_dir

Alternatives

timestamps...? I don't like timestamps as they are messy but would do the trick.

cc @Borda