code: def get_warmup_momentum(self, cur_iters):
      def _get_warmup_momentum(cur_iters, regular_momentum):
          if self.warmup == "constant":
              warmup_momentum = [
                  _momentum / self.warmup_ratio
                  for _momentum in self.regular_momentum
              ]
          elif self.warmup == "linear":
              k = (1 - cur_iters / self.warmup_iters) * (
                  1 - self.warmup_ratio
              )
              warmup_momentum = [
                  _momentum / (1 - k) for _momentum in self.regular_mom
              ]
          elif self.warmup == "exp":
              k = self.warmup_ratio ** (
                  1 - cur_iters / self.warmup_iters
              )
              warmup_momentum = [
                  _momentum / k for _momentum in self.regular_mom
              ]
          return warmup_momentum
  
      if isinstance(self.regular_momentum, dict):
          momentum_groups = {}
          for key, regular_momentum in self.regular_momentum.items():
              momentum_groups[key] = _get_warmup_momentum(
                  cur_iters, regular_momentum
              )
          return momentum_groups
      else:
          return _get_warmup_momentum(cur_iters, self.regular_momentum)
  
imports: import annotator.uniformer.mmcv
  from .hook import HOOKS, Hook
  from .lr_updater import annealing_cos, annealing_linear, format_param
label_desc: Use image node_id 5 for calling the MomentumUpdaterHook obj's underlying member method code with example usage: obj.get_warmup_momentum(cur_iters) and returns: warmup_momentum, momentum_groups, _get_warmup_momentum