예제 #1
0
    def __init__(self, iterator: Iterable, verb: bool = False):

        super(TQDMReporter, self).__init__()
        self.writer = tqdm.tqdm(iterator,
                                ncols=80) if is_master() else iterator
        self._verb = verb
        self._logger = liblog.get_logger(__name__)
        self._length = len(iterator)
        liblog._set_tqdm_handler()
예제 #2
0
    def __init__(self, iterator: Iterable, verb: bool = False):

        super(TQDMReporter, self).__init__()
        self.writer = tqdm.tqdm(
            iterator, dynamic_ncols=True) if is_master() else iterator
        self._verb = verb
        self._logger = liblog.get_logger(__name__)
        self._length = len(iterator)
        self._max_accuracy = -1.0
        liblog._set_tqdm_handler()
        liblog._set_tqdm_print()
예제 #3
0
 def after_epoch(self, data: Mapping):
     reportable = {}
     results = super(TQDMReporter, self).after_epoch(data)
     if is_master():
         for k, v in results.items():
             if self._is_scalar(v):
                 reportable[k] = self.to_serializable(v)
             elif isinstance(v, dict):
                 reportable.update(
                     {k: self.to_serializable(e)
                      for k, e in v.items()})
         self.writer.set_postfix(reportable)
         if self._verb:
             log = ""
             for k, v in reportable.items():
                 v = f"{v:.4f}" if isinstance(v, Number) else v
                 log += f"{k}={v}, "
             self._logger.info(log[:-2])
예제 #4
0
 def __new__(cls, *args, **kwargs):
     if cls.master_only and not is_master():
         return _ReporterBase(*args, **kwargs)
     return object.__new__(cls)
예제 #5
0
 def add_text(self, text: str):
     if is_master():
         self.writer.write(text)