class_docstr: This is the WaveNet like layer for the affine coupling.  The primary
  difference from WaveNet is the convolutions need not be causal.  There is
  also no dilation size reset.  The dilation only doubles on each layer
class_docstr_tok: ["This","is","the","WaveNet","like","layer","for","the","affine","coupling",".","The","primary","difference","from","WaveNet","is","the","convolutions","need","not","be","causal",".","There","is","also","no","dilation","size","reset",".","The","dilation","only","doubles","on","each","layer"]
code: def forward(self, forward_input):
      audio, spect = forward_input
      audio = self.start(audio)
  
      for i in range(self.n_layers):
          acts = fused_add_tanh_sigmoid_multiply(
              self.in_layers[i](audio),
              self.cond_layers[i](spect),
              torch.IntTensor([self.n_channels]),
          )
  
          res_skip_acts = self.res_skip_layers[i](acts)
          if i < self.n_layers - 1:
              audio = res_skip_acts[:, : self.n_channels, :] + audio
              skip_acts = res_skip_acts[:, self.n_channels :, :]
          else:
              skip_acts = res_skip_acts
  
          if i == 0:
              output = skip_acts
          else:
              output = skip_acts + output
      return self.end(output)
  
file_path: serve/examples/text_to_speech_synthesizer/waveglow_model.py
imports: import torch
  from torch.autograd import Variable
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the WN obj's underlying member method code with example usage: obj.forward(forward_input) and returns: self