class_docstr: Global Layer Normalization (gLN).
  
  Arguments
  ---------
  channel_size : int
      Number of channels in the third dimension.
  
  Example
  -------
  >>> x = torch.randn(2, 3, 3)
  >>> norm_func = GlobalLayerNorm(3)
  >>> x_normalized = norm_func(x)
  >>> x.shape
  torch.Size([2, 3, 3])
docstr: Arguments
  ---------
  y : Tensor
      Tensor shape [M, K, N]. M is batch size, N is channel size, and K is length.
  
  Returns
  -------
  gLN_y : Tensor
      Tensor shape [M, K. N]
docstr_tok: ["Arguments","--","--","--","--","-","y",":","Tensor","Tensor","shape","[","M",",","K",",","N","]",".","M","is","batch","size",",","N","is","channel","size",",","and","K","is","length",".","Returns","--","--","--","-","gLN_y",":","Tensor","Tensor","shape","[","M",",","K.","N","]"]
code: def forward(self, y):
      """
      Arguments
      ---------
      y : Tensor
          Tensor shape [M, K, N]. M is batch size, N is channel size, and K is length.
  
      Returns
      -------
      gLN_y : Tensor
          Tensor shape [M, K. N]
      """
      mean = y.mean(dim=1, keepdim=True).mean(
          dim=2, keepdim=True
      )  # [M, 1, 1]
      var = (
          (torch.pow(y - mean, 2))
          .mean(dim=1, keepdim=True)
          .mean(dim=2, keepdim=True)
      )
      gLN_y = (
          self.gamma * (y - mean) / torch.pow(var + EPS, 0.5)
          + self.beta
      )
      return gLN_y
  
imports: import torch
  import torch.nn
  import speechbrain
  import torch.nn.functional
  from speechbrain.processing.signal_processing import overlap_and_add
label_desc: Use image node_id 3 for calling the GlobalLayerNorm obj's underlying member method code with example usage: obj.forward(y) and returns: gLN_y