class_docstr: HiFi-GAN model (https://arxiv.org/abs/2010.05646) that is used to generate audio from mel spectrogram.
class_docstr_tok: ["HiFi-GAN","model","(","https",":","\/\/arxiv.org\/abs\/2010.05646",")","that","is","used","to","generate","audio","from","mel","spectrogram","."]
code: def configure_optimizers(self):
      optim_config = self._cfg.optim.copy()
  
      OmegaConf.set_struct(optim_config, False)
      sched_config = optim_config.pop("sched", None)
      OmegaConf.set_struct(optim_config, True)
  
      gen_params = self.generator.parameters()
      disc_params = itertools.chain(
          self.msd.parameters(), self.mpd.parameters()
      )
      optim_g = instantiate(optim_config, params=gen_params)
      optim_d = instantiate(optim_config, params=disc_params)
  
      if sched_config is None:
          return [optim_g, optim_d]
  
      max_steps = self.max_steps
      warmup_steps = self.get_warmup_steps(
          max_steps=max_steps,
          warmup_steps=sched_config.get("warmup_steps", None),
          warmup_ratio=sched_config.get("warmup_ratio", None),
      )
  
      OmegaConf.set_struct(sched_config, False)
      sched_config["max_steps"] = max_steps
      if warmup_steps:
          sched_config["warmup_steps"] = warmup_steps
          sched_config.pop("warmup_ratio", None)
      OmegaConf.set_struct(sched_config, True)
  
      scheduler_g = prepare_lr_scheduler(
          optimizer=optim_g,
          scheduler_config=sched_config,
          train_dataloader=self._train_dl,
      )
  
      scheduler_d = prepare_lr_scheduler(
          optimizer=optim_d,
          scheduler_config=sched_config,
          train_dataloader=self._train_dl,
      )
  
      self.lr_schedule_interval = scheduler_g["interval"]
  
      return [optim_g, optim_d], [scheduler_g, scheduler_d]
  
imports: import itertools
  from pathlib import Path
  import torch
  import torch.nn.functional
  from hydra.utils import instantiate
  from omegaconf import DictConfig, OmegaConf, open_dict
  from pytorch_lightning.loggers.wandb import WandbLogger
  from nemo.collections.tts.losses.hifigan_losses import DiscriminatorLoss, FeatureMatchingLoss, GeneratorLoss
  from nemo.collections.tts.models.base import Vocoder
  from nemo.collections.tts.modules.hifigan_modules import MultiPeriodDiscriminator, MultiScaleDiscriminator
  from nemo.collections.tts.parts.utils.callbacks import LoggingCallback
  from nemo.collections.tts.parts.utils.helpers import get_batch_size, get_num_workers, plot_spectrogram_to_numpy
  from nemo.core.classes import Exportable
  from nemo.core.classes.common import PretrainedModelInfo, typecheck
  from nemo.core.neural_types.elements import AudioSignal, MelSpectrogramType
  from nemo.core.neural_types.neural_type import NeuralType
  from nemo.core.optim.lr_scheduler import compute_max_steps, prepare_lr_scheduler
  from nemo.utils import logging, model_utils
label_desc: Use image node_id 4 for calling the HifiGanModel obj's underlying member method code with example usage: obj.configure_optimizers() and returns: list,  list, list