code: def split_normalization_params(
      model: nn.Module, norm_classes: Optional[List[type]] = None
  ) -> Tuple[List[Tensor], List[Tensor]]:
      # Adapted from https://github.com/facebookresearch/ClassyVision/blob/659d7f78/classy_vision/generic/util.py#L501
      if not norm_classes:
          norm_classes = [
              nn.modules.batchnorm._BatchNorm,
              nn.LayerNorm,
              nn.GroupNorm,
              nn.modules.instancenorm._InstanceNorm,
              nn.LocalResponseNorm,
          ]
  
      for t in norm_classes:
          if not issubclass(t, nn.Module):
              raise ValueError(
                  f"Class {t} is not a subclass of nn.Module."
              )
  
      classes = tuple(norm_classes)
  
      norm_params = []
      other_params = []
      for module in model.modules():
          if next(module.children(), None):
              other_params.extend(
                  p
                  for p in module.parameters(recurse=False)
                  if p.requires_grad
              )
          elif isinstance(module, classes):
              norm_params.extend(
                  p for p in module.parameters() if p.requires_grad
              )
          else:
              other_params.extend(
                  p for p in module.parameters() if p.requires_grad
              )
      return norm_params, other_params
  
file_path: vision/torchvision/ops/_utils.py
imports: from typing import List, Optional, Tuple, Union
  import torch
  from torch import nn, Tensor
label_desc: Use image node_id 4 for calling a global function with example usage: split_normalization_params(model, norm_classes) and returns: norm_params,  other_params