class_docstr: WaveGlow model (https://arxiv.org/abs/1811.00002) that is used to generate audio from mel spectrogram.
class_docstr_tok: ["WaveGlow","model","(","https",":","\/\/arxiv.org\/abs\/1811.00002",")","that","is","used","to","generate","audio","from","mel","spectrogram","."]
code: def on_validation_epoch_end(self):
      if self.logger is not None and self.logger.experiment is not None:
          tb_logger = self.logger.experiment
          for logger in self.trainer.loggers:
              if isinstance(logger, TensorBoardLogger):
                  tb_logger = logger.experiment
                  break
          waveglow_log_to_tb_func(
              tb_logger,
              self.validation_step_outputs[0].values(),
              self.global_step,
              tag="eval",
              mel_fb=self.audio_to_melspec_precessor.fb,
          )
      avg_loss = torch.stack(
          [x["val_loss"] for x in self.validation_step_outputs]
      ).mean()
      self.log("val_loss", avg_loss)
      self.validation_step_outputs.clear()
  
imports: import torch
  from hydra.utils import instantiate
  from omegaconf import DictConfig, open_dict
  from pytorch_lightning.loggers import TensorBoardLogger
  from nemo.collections.tts.losses.waveglowloss import WaveGlowLoss
  from nemo.collections.tts.models.base import GlowVocoder
  from nemo.collections.tts.parts.utils.helpers import OperationMode, waveglow_log_to_tb_func
  from nemo.core.classes import Exportable
  from nemo.core.classes.common import PretrainedModelInfo, typecheck
  from nemo.core.neural_types.elements import AudioSignal, LengthsType, LogDeterminantType, MelSpectrogramType, NormalDistributionSamplesType, VoidType
  from nemo.core.neural_types.neural_type import NeuralType
  from nemo.utils import logging, model_utils
label_desc: Use image node_id 7 for calling the WaveGlowModel obj's underlying member method code with example usage: obj.on_validation_epoch_end() without return types