class_docstr: PWGAN generator as in https://arxiv.org/pdf/1910.11480.pdf.
  It is similar to WaveNet with no causal convolution.
      It is conditioned on an aux feature (spectrogram) to generate
  an output waveform from an input noise.
class_docstr_tok: ["PWGAN","generator","as","in","https",":","\/\/arxiv.org\/pdf\/1910.11480.pdf",".","It","is","similar","to","WaveNet","with","no","causal","convolution",".","It","is","conditioned","on","an","aux","feature","(","spectrogram",")","to","generate","an","output","waveform","from","an","input","noise","."]
code: def apply_weight_norm(self):
      def _apply_weight_norm(m):
          if isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d)):
              torch.nn.utils.weight_norm(m)
              # print(f"Weight norm is applied to {m}.")
  
      self.apply(_apply_weight_norm)
  
file_path: TTS/TTS/vocoder/models/parallel_wavegan_generator.py
imports: import math
  import numpy
  import torch
  from TTS.vocoder.layers.parallel_wavegan import ResidualBlock
  from TTS.vocoder.layers.upsample import ConvUpsample
label_desc: Use image node_id 5 for calling the ParallelWaveganGenerator obj's underlying member method code with example usage: obj.apply_weight_norm() without return types