class_docstr: HiFiGAN Multi-Period Discriminator (MPD)
  Wrapper for the `PeriodDiscriminator` to apply it in different periods.
  Periods are suggested to be prime numbers to reduce the overlap between each discriminator.
docstr: Args:
      x (Tensor): input waveform.
  
  Returns:
  [List[Tensor]]: list of scores from each discriminator.
      [List[List[Tensor]]]: list of list of features from each discriminator's each convolutional layer.
  
  Shapes:
      x: [B, 1, T]
docstr_tok: ["Args",":","x","(","Tensor",")",":","input","waveform",".","Returns",":","[","List","[","Tensor","]","]",":","list","of","scores","from","each","discriminator",".","[","List","[","List","[","Tensor","]","]","]",":","list","of","list","of","features","from","each","discriminator","'s","each","convolutional","layer",".","Shapes",":","x",":","[","B",",","1",",","T","]"]
code: def forward(self, x):
      """
      Args:
          x (Tensor): input waveform.
  
      Returns:
      [List[Tensor]]: list of scores from each discriminator.
          [List[List[Tensor]]]: list of list of features from each discriminator's each convolutional layer.
  
      Shapes:
          x: [B, 1, T]
      """
      scores = []
      feats = []
      for _, d in enumerate(self.discriminators):
          score, feat = d(x)
          scores.append(score)
          feats.append(feat)
      return scores, feats
  
imports: import torch
  from torch import nn
  from torch.nn import functional
label_desc: Use image node_id 2 for calling the MultiPeriodDiscriminator obj's underlying member method code with example usage: obj.forward(x) and returns: scores,  feats