class_docstr: Applies group normalization to the input tensor.
  
  Arguments
  ---------
  input_shape : tuple
      The expected shape of the input. Alternatively, use ``input_size``.
  input_size : int
      The expected size of the input. Alternatively, use ``input_shape``.
  num_groups : int
      Number of groups to separate the channels into.
  eps : float
      This value is added to std deviation estimation to improve the numerical
      stability.
  affine : bool
       A boolean value that when set to True, this module has learnable per-channel
       affine parameters initialized to ones (for weights) and zeros (for biases).
  Example
  -------
  >>> input = torch.randn(100, 101, 128)
  >>> norm = GroupNorm(input_size=128, num_groups=128)
  >>> output = norm(input)
  >>> output.shape
  torch.Size([100, 101, 128])
class_docstr_tok: ["Applies","group","normalization","to","the","input","tensor",".","Arguments","--","--","--","--","-","input_shape",":","tuple","The","expected","shape","of","the","input",".","Alternatively",",","use","``","input_size","``",".","input_size",":","int","The","expected","size","of","the","input",".","Alternatively",",","use","``","input_shape","``",".","num_groups",":","int","Number","of","groups","to","separate","the","channels","into",".","eps",":","float","This","value","is","added","to","std","deviation","estimation","to","improve","the","numerical","stability",".","affine",":","bool","A","boolean","value","that","when","set","to","True",",","this","module","has","learnable","per-channel","affine","parameters","initialized","to","ones","(","for","weights",")","and","zeros","(","for","biases",")",".","Example","--","--","--","-",">",">",">","input","=","torch.randn","(","100",",","101",",","128",")",">",">",">","norm","=","GroupNorm","(","input_size=128",",","num_groups=128",")",">",">",">","output","=","norm","(","input",")",">",">",">","output.shape","torch.Size","(","[","100",",","101",",","128","]",")"]
code: def __init__(
      self,
      input_shape=None,
      input_size=None,
      num_groups=None,
      eps=1e-05,
      affine=True,
  ):
      super().__init__()
      self.eps = eps
      self.affine = affine
  
      if input_shape is None and input_size is None:
          raise ValueError(
              "Expected input_shape or input_size as input"
          )
  
      if num_groups is None:
          raise ValueError("Expected num_groups as input")
  
      if input_shape is not None:
          input_size = input_shape[-1]
  
      self.norm = torch.nn.GroupNorm(
          num_groups,
          input_size,
          eps=self.eps,
          affine=self.affine,
      )
  
imports: import torch
  import torch.nn
label_desc: Use image node_id 1 to create a new GroupNorm object from inherited base classes: nn with example: obj = GroupNorm(input_shape, input_size, num_groups, eps, affine)