Source code for torchpack.callbacks.metainfo

import os
from typing import Optional

from torchpack.callbacks.callback import Callback
from torchpack.environ import get_run_dir
from torchpack.utils import fs, git, io
from torchpack.utils.config import configs

__all__ = ['MetaInfoSaver']


[docs]class MetaInfoSaver(Callback): master_only: bool = True def __init__(self, save_dir: Optional[str] = None) -> None: if save_dir is None: save_dir = os.path.join(get_run_dir(), 'metainfo') self.save_dir = fs.normpath(save_dir) def _before_train(self) -> None: if configs: io.save(os.path.join(self.save_dir, 'configs.yaml'), configs.dict()) if git.is_inside_work_tree(): metainfo = dict() remote = git.get_remote_url() if remote: metainfo['remote'] = remote metainfo['commit'] = git.get_commit_hash() io.save(os.path.join(self.save_dir, 'git.json'), metainfo, indent=4)