class_docstr: Channel-wise Layer Normalization (cLN).
  
  Arguments
  ---------
  channel_size : int
      Number of channels in the normalization dimension (the third dimension).
  
  Example
  -------
  >>> x = torch.randn(2, 3, 3)
  >>> norm_func = ChannelwiseLayerNorm(3)
  >>> x_normalized = norm_func(x)
  >>> x.shape
  torch.Size([2, 3, 3])
docstr: Args:
      y: [M, K, N], M is batch size, N is channel size, K is length
  Returns:
      cLN_y: [M, K, N]
docstr_tok: ["Args",":","y",":","[","M",",","K",",","N","]",",","M","is","batch","size",",","N","is","channel","size",",","K","is","length","Returns",":","cLN_y",":","[","M",",","K",",","N","]"]
code: def forward(self, y):
      """
      Args:
          y: [M, K, N], M is batch size, N is channel size, K is length
      Returns:
          cLN_y: [M, K, N]
      """
      mean = torch.mean(y, dim=2, keepdim=True)  # [M, K, 1]
      var = torch.var(
          y, dim=2, keepdim=True, unbiased=False
      )  # [M, K, 1]
      cLN_y = (
          self.gamma * (y - mean) / torch.pow(var + EPS, 0.5)
          + self.beta
      )
      return cLN_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 ChannelwiseLayerNorm obj's underlying member method code with example usage: obj.forward(y) and returns: cLN_y