class_docstr: Example GNN layer.
code: def __init__(self, in_channels, out_channels, bias=True, **kwargs):
      super().__init__(aggr=cfg.gnn.agg, **kwargs)
  
      self.in_channels = in_channels
      self.out_channels = out_channels
  
      self.weight = Parameter(torch.empty(in_channels, out_channels))
  
      if bias:
          self.bias = Parameter(torch.empty(out_channels))
      else:
          self.register_parameter("bias", None)
  
      self.reset_parameters()
  
imports: import torch
  import torch.nn
  from torch.nn import Parameter
  from torch_geometric.graphgym.config import cfg
  from torch_geometric.graphgym.register import register_layer
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.inits import glorot, zeros
label_desc: Use image node_id 1 to create a new ExampleConv2Layer object from inherited base classes: MessagePassing with example: obj = ExampleConv2Layer(in_channels, out_channels, bias)