class_docstr: Main neural network of the outputnet
  
  Note: Do not put dropout layers here, the model will not converge.
  
  Args:
          outputnet_size (List[int]): the architecture of the parameter model
          input_size (int): size of input for the first layer
          output_size (int): size of output i.e size of the feature dim
          frame_channels (int): feature dim to set the flat start bias
          flat_start_params (dict): flat start parameters to set the bias
class_docstr_tok: ["Main","neural","network","of","the","outputnet","Note",":","Do","not","put","dropout","layers","here",",","the","model","will","not","converge",".","Args",":","outputnet_size","(","List","[","int","]",")",":","the","architecture","of","the","parameter","model","input_size","(","int",")",":","size","of","input","for","the","first","layer","output_size","(","int",")",":","size","of","output","i.e","size","of","the","feature","dim","frame_channels","(","int",")",":","feature","dim","to","set","the","flat","start","bias","flat_start_params","(","dict",")",":","flat","start","parameters","to","set","the","bias"]
code: def forward(self, x):
      for layer in self.layers:
          x = F.relu(layer(x))
      x = self.last_layer(x)
      return x
  
imports: from typing import List, Tuple
  import torch
  import torch.nn.functional
  from torch import nn
  from tqdm.auto import tqdm
  from TTS.tts.layers.tacotron.common_layers import Linear
  from TTS.tts.layers.tacotron.tacotron2 import ConvBNBlock
label_desc: Use image node_id 3 for calling the ParameterModel obj's underlying member method code with example usage: obj.forward(x) and returns: x