code: def forward(self, edge_index, num_nodes, feature, norm=None):
      if self.norm and norm is None:
          norm = gcn_norm(edge_index, num_nodes)
  
      if self.input_size > self.output_size:
          feature = self.linear(feature)
  
      if norm is not None:
          feature = feature * norm
  
      output = self.send_recv(feature, "sum")
  
      if self.input_size <= self.output_size:
          output = self.linear(output)
  
      if norm is not None:
          output = output * norm
      output = output + self.bias
      if self.activation is None:
          output = self.activation(output)
      return output
  
file_path: PGL/examples/gnn_depoly/models/conv/gcn_conv.py
imports: import paddle
  import paddle.nn
  from .base_conv import BaseConv
label_desc: Use image node_id 2 for calling the GCNConv obj's underlying member method code with example usage: obj.forward(edge_index, num_nodes, feature, norm) and returns: output