class_docstr: Applies Group Normalization over a 4D input (a mini-batch of 2D inputs
  with additional channel dimension) as described in the paper
  https://arxiv.org/abs/1803.08494
  `Group Normalization`_ .
  
  Args:
      num_features: :math:`C` from an expected input of size
          :math:`(N, C, H, W)`
      num_groups: number of channels in a group.
      eps: a value added to the denominator for numerical stability. Default: 1e-5
      momentum: the value used for the running_mean and running_var computation. Default: 0.1
      affine: a boolean value that when set to ``True``, this module has
          learnable affine parameters. Default: ``True``
      track_running_stats: a boolean value that when set to ``True``, this
          module tracks the running mean and variance, and when set to ``False``,
          this module does not track such statistics and always uses batch
          statistics in both training and eval modes. Default: ``False``
  
  Shape:
      - Input: :math:`(N, C, H, W)`
      - Output: :math:`(N, C, H, W)` (same shape as input)
  
  Examples:
      >>> # Without Learnable Parameters
      >>> m = nn.GroupNorm2d(100, 4)
      >>> # With Learnable Parameters
      >>> m = nn.GroupNorm2d(100, 4, affine=True)
      >>> input = torch.randn(20, 100, 35, 45)
      >>> output = m(input_)
class_docstr_tok: ["Applies","Group","Normalization","over","a","4D","input","(","a","mini-batch","of","2D","inputs","with","additional","channel","dimension",")","as","described","in","the","paper","https",":","\/\/arxiv.org\/abs\/1803.08494","`","Group","Normalization","`","_",".","Args",":","num_features",":",":","math",":","`","C","`","from","an","expected","input","of","size",":","math",":","`","(","N",",","C",",","H",",","W",")","`","num_groups",":","number","of","channels","in","a","group",".","eps",":","a","value","added","to","the","denominator","for","numerical","stability",".","Default",":","1e-5","momentum",":","the","value","used","for","the","running_mean","and","running_var","computation",".","Default",":","0.1","affine",":","a","boolean","value","that","when","set","to","``","True","``",",","this","module","has","learnable","affine","parameters",".","Default",":","``","True","``","track_running_stats",":","a","boolean","value","that","when","set","to","``","True","``",",","this","module","tracks","the","running","mean","and","variance",",","and","when","set","to","``","False","``",",","this","module","does","not","track","such","statistics","and","always","uses","batch","statistics","in","both","training","and","eval","modes",".","Default",":","``","False","``","Shape",":","-","Input",":",":","math",":","`","(","N",",","C",",","H",",","W",")","`","-","Output",":",":","math",":","`","(","N",",","C",",","H",",","W",")","`","(","same","shape","as","input",")","Examples",":",">",">",">","#","Without","Learnable","Parameters",">",">",">","m","=","nn.GroupNorm2d","(","100",",","4",")",">",">",">","#","With","Learnable","Parameters",">",">",">","m","=","nn.GroupNorm2d","(","100",",","4",",","affine=True",")",">",">",">","input","=","torch.randn","(","20",",","100",",","35",",","45",")",">",">",">","output","=","m","(","input_",")"]
code: def _check_input_dim(self, input_):
      if input_.dim() != 4:
          raise ValueError(
              "expected 4D input (got {}D input)".format(input_.dim())
          )
  
file_path: pywick/pywick/functions/group_norm.py
imports: import torch
  import torch.nn.functional
  from torch.nn.modules.batchnorm import _BatchNorm
label_desc: Use image node_id 1 for calling the GroupNorm2d obj's underlying member method code with example usage: obj._check_input_dim(input_) without return types