code: def forward(self, x, spectrogram, noise_scale):
      shift_and_scale = []
  
      x = self.y_conv(x)
      shift_and_scale.append(self.film[0](x, noise_scale))
  
      for film, layer in zip(self.film[1:], self.dblocks):
          x = layer(x)
          shift_and_scale.append(film(x, noise_scale))
  
      x = self.x_conv(spectrogram)
      for layer, (film_shift, film_scale) in zip(
          self.ublocks, reversed(shift_and_scale)
      ):
          x = layer(x, film_shift, film_scale)
      x = self.out_conv(x)
      return x
  
file_path: TTS/TTS/vocoder/models/wavegrad.py
imports: import numpy
  import torch
  from torch import nn
  from torch.nn.utils import weight_norm
  from ..layers.wavegrad import DBlock, FiLM, UBlock, Conv1d
label_desc: Use image node_id 2 for calling the Wavegrad obj's underlying member method code with example usage: obj.forward(x, spectrogram, noise_scale) and returns: x