class_docstr: Channel-wise Layer Normalization (cLN).
class_docstr_tok: ["Channel-wise","Layer","Normalization","(","cLN",")","."]
docstr: Forward.
  
  Args:
      y: [M, N, K], M is batch size, N is channel size, K is length
  
  Returns:
      cLN_y: [M, N, K]
docstr_tok: ["Forward",".","Args",":","y",":","[","M",",","N",",","K","]",",","M","is","batch","size",",","N","is","channel","size",",","K","is","length","Returns",":","cLN_y",":","[","M",",","N",",","K","]"]
code: def forward(self, y):
      """Forward.
  
      Args:
          y: [M, N, K], M is batch size, N is channel size, K is length
  
      Returns:
          cLN_y: [M, N, K]
      """
      mean = torch.mean(y, dim=1, keepdim=True)  # [M, 1, K]
      var = torch.var(
          y, dim=1, keepdim=True, unbiased=False
      )  # [M, 1, K]
      cLN_y = (
          self.gamma * (y - mean) / torch.pow(var + EPS, 0.5)
          + self.beta
      )
      return cLN_y
  
imports: import torch
  import torch.nn
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