code: def _get_norm_optimizer_params(
      module: nn.Module,
      regularized_params: List[nn.Parameter],
      unregularized_params: List[nn.Parameter],
      optimizer_config: AttrDict,
  ):
      """
      Given the (Sync)BatchNorm module in the model, we separate the module params
      into regularized or non-regularized (weight_decay=0).
      """
      # this is called by get_optimizer_params for BN specific layer only
      if module.weight is not None:
          if optimizer_config["regularize_bn"]:
              regularized_params.append(module.weight)
          else:
              unregularized_params.append(module.weight)
      if module.bias is not None:
          if (
              optimizer_config["regularize_bn"]
              and optimizer_config["regularize_bias"]
          ):
              regularized_params.append(module.bias)
          else:
              unregularized_params.append(module.bias)
      return regularized_params, unregularized_params
  
file_path: vissl/vissl/optimizers/param_groups/default.py
imports: import logging
  from typing import Any, Dict, List
  import torch.nn
  from fvcore.common.param_scheduler import ParamScheduler
  from vissl.config import AttrDict
  from vissl.optimizers.param_groups.registry import register_param_group_constructor
  from vissl.utils.misc import is_apex_available
label_desc: Use image node_id 1 for calling a global function with example usage: _get_norm_optimizer_params(module, regularized_params, unregularized_params, optimizer_config) and returns: regularized_params,  unregularized_params