class_docstr: Use GroupNorm to construct LayerNorm as pytorch LayerNorm2d requires
  specifying input_shape explicitly which is inconvenient. Set num_groups=1 to
  convert GroupNorm to LayerNorm.
class_docstr_tok: ["Use","GroupNorm","to","construct","LayerNorm","as","pytorch","LayerNorm2d","requires","specifying","input_shape","explicitly","which","is","inconvenient",".","Set","num_groups=1","to","convert","GroupNorm","to","LayerNorm","."]
code: def __init__(self, num_channels, eps=1e-5, affine=True):
      super(LayerNorm2d, self).__init__(
          num_groups=1,
          num_channels=num_channels,
          eps=eps,
          affine=affine,
      )
  
imports: import logging
  import math
  import warnings
  from enum import Enum
  from typing import Dict, List, Tuple
  import torch
  import torch.distributed
  import torch.nn
  import torch.nn.functional
  from torch.nn.modules.utils import _ntuple
  from torch.utils.checkpoint import checkpoint
  from vissl.data.collators.collator_helper import MultiDimensionalTensor
  from vissl.utils.activation_checkpointing import checkpoint_trunk
  from vissl.utils.env import get_machine_local_and_dist_rank
  from vissl.utils.misc import is_apex_available
label_desc: Use image node_id 1 to create a new LayerNorm2d object from inherited base classes: nn with example: obj = LayerNorm2d(num_channels, eps, affine)