class_docstr: Maintains running average for a stream of batched data, in which the outer dimension is
  assumed to be batches
  
  Call .restart() to clear added values and to start a new round of averaging
code: def __init__(
      self, min_mode: Optional[bool] = True, avg_in_batch: bool = True
  ):
      super(BatchAverageMeter, self).__init__(min_mode)
      self.averaging = avg_in_batch
  
imports: from __future__ import annotations
  import time
  import warnings
  from abc import ABC, abstractmethod
  from typing import Optional, Union
  from torch import Tensor
  from ..engine.distributed import reduce_value
label_desc: Use image node_id 1 to create a new BatchAverageMeter object from inherited base classes: NumericalAverageMeter with example: obj = BatchAverageMeter(min_mode, avg_in_batch)