code: def GNNPreMP(
      dim_in: int, dim_out: int, num_layers: int
  ) -> GeneralMultiLayer:
      r"""Creates a NN layer used before message passing, 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.
          num_layers (int): The number of layers.
      """
      return GeneralMultiLayer(
          "linear",
          layer_config=new_layer_config(
              dim_in,
              dim_out,
              num_layers,
              has_act=False,
              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 2 for calling a global function with example usage: GNNPreMP(dim_in, dim_out, num_layers) and returns: GeneralMultiLayer