Shortcuts

Source code for mmrazor.utils.runtime_info

# Copyright (c) OpenMMLab. All rights reserved.
import math

from mmengine import Config, MessageHub


[docs]class RuntimeInfo(): """A tools to get runtime info in MessageHub.""" @classmethod def info(cls): hub = MessageHub.get_current_instance() return hub.runtime_info @classmethod def get_info(cls, key): info = cls.info() if key in info: return info[key] else: raise KeyError(key) @classmethod def epoch(cls): return cls.get_info('epoch') @classmethod def max_epochs(cls): return cls.get_info('max_epochs') @classmethod def iter(cls): return cls.get_info('iter') @classmethod def max_iters(cls): return cls.get_info('max_iters') @classmethod def iter_by_epoch(cls): iter_per_epoch = math.ceil(cls.max_iters() / cls.max_epochs()) return cls.iter() % iter_per_epoch @classmethod def iter_pre_epoch(cls): iter_per_epoch = math.ceil(cls.max_iters() / cls.max_epochs()) return iter_per_epoch @classmethod def config(cls): cfg: str = cls.get_info('cfg') config = Config.fromstring(cfg, '.py') return config @classmethod def work_dir(cls): config = cls.config() return config['work_dir']