code: def GNNLayer(
      dim_in: int, dim_out: int, has_act: bool = True
  ) -> GeneralLayer:
      r"""Creates a GNN layer, given the specified input and output dimensions
      and the underlying configuration in :obj:`cfg`.
  
      Args:
          dim_in (int): The input dimension
          dim_out (int): The output dimension.
          has_act (bool, optional): Whether to apply an activation function
              after the layer. (default: :obj:`True`)
      """
      return GeneralLayer(
          cfg.gnn.layer_type,
          layer_config=new_layer_config(
              dim_in,
              dim_out,
              1,
              has_act=has_act,
              has_bias=False,
              cfg=cfg,
          ),
      )
  
imports: import torch
  import torch.nn.functional
  import torch_geometric.graphgym.register
  from torch_geometric.graphgym.config import cfg
  from torch_geometric.graphgym.init import init_weights
  from torch_geometric.graphgym.models.layer import BatchNorm1dNode, GeneralLayer, GeneralMultiLayer, new_layer_config
  from torch_geometric.graphgym.register import register_stage
label_desc: Use image node_id 1 for calling a global function with example usage: GNNLayer(dim_in, dim_out, has_act) and returns: GeneralLayer