code: def __init__(
      self,
      input_feat_dim,
      hidden_dim1,
      hidden_dim2,
      dropout,
      prediction_type,
  ):
      super(GCNModelVAE, self).__init__()
      self.gc1 = GraphConvolution(
          input_feat_dim, hidden_dim1, dropout, act=F.relu
      )
      self.gc2 = GraphConvolution(
          hidden_dim1, hidden_dim2, dropout, act=lambda x: x
      )
      self.gc3 = GraphConvolution(
          hidden_dim1, hidden_dim2, dropout, act=lambda x: x
      )
      self.prediction_type = prediction_type
      self.act = lambda x: x
      if self.prediction_type == "ele_sum":
          self.dc = ElementSumLayer(hidden_dim2, 16, 1)
      if self.prediction_type == "concat_NN":
          self.dc = ConcatFeedForwardNNLayer(hidden_dim2, 16, 1)
      if self.prediction_type == "stacked_ele_prod":
          self.dc = StackedElementProdLayer(hidden_dim2, 16, 1, 1)
  
file_path: graph4nlp/graph4nlp/pytorch/test/link_prediction/model.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from layers import GraphConvolution
  from ...modules.prediction.classification.link_prediction.ConcatFeedForwardNNLayer import ConcatFeedForwardNNLayer
  from ...modules.prediction.classification.link_prediction.ElementSumLayer import ElementSumLayer
  from ...modules.prediction.classification.link_prediction.StackedElementProdLayer import StackedElementProdLayer
label_desc: Use image node_id 1 to create a new GCNModelVAE object from inherited base classes: nn with example: obj = GCNModelVAE(input_feat_dim, hidden_dim1, hidden_dim2, dropout, prediction_type)