class_docstr: Arguments
  ---------
  N : int
      Number of filters in autoencoder.
  B : int
      Number of channels in bottleneck 1 × 1-conv block.
  H : int
      Number of channels in convolutional blocks.
  P : int
      Kernel size in convolutional blocks.
  X : int
      Number of convolutional blocks in each repeat.
  R : int
      Number of repeats.
  C : int
      Number of speakers.
  norm_type : str
      One of BN, gLN, cLN.
  causal : bool
      Causal or non-causal.
  mask_nonlinear : str
      Use which non-linear function to generate mask, in ['softmax', 'relu'].
  
  Example:
  ---------
  >>> N, B, H, P, X, R, C = 11, 12, 2, 5, 3, 1, 2
  >>> MaskNet = MaskNet(N, B, H, P, X, R, C)
  >>> mixture_w = torch.randn(10, 11, 100)
  >>> est_mask = MaskNet(mixture_w)
  >>> est_mask.shape
  torch.Size([2, 10, 11, 100])
code: def __init__(
      self,
      N,
      B,
      H,
      P,
      X,
      R,
      C,
      norm_type="gLN",
      causal=False,
      mask_nonlinear="relu",
  ):
      super(MaskNet, self).__init__()
  
      # Hyper-parameter
      self.C = C
      self.mask_nonlinear = mask_nonlinear
  
      # Components
      # [M, K, N] -> [M, K, N]
      self.layer_norm = ChannelwiseLayerNorm(N)
  
      # [M, K, N] -> [M, K, B]
      self.bottleneck_conv1x1 = sb.nnet.CNN.Conv1d(
          in_channels=N,
          out_channels=B,
          kernel_size=1,
          bias=False,
      )
  
      # [M, K, B] -> [M, K, B]
      in_shape = (None, None, B)
      self.temporal_conv_net = TemporalBlocksSequential(
          in_shape, H, P, R, X, norm_type, causal
      )
  
      # [M, K, B] -> [M, K, C*N]
      self.mask_conv1x1 = sb.nnet.CNN.Conv1d(
          in_channels=B, out_channels=C * N, kernel_size=1, bias=False
      )
  
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 1 to create a new MaskNet object from inherited base classes: nn with example: obj = MaskNet(N, B, H, P, X, R, C, norm_type, causal, mask_nonlinear)