code: def gnn_map(
      gnn_name, in_dim, out_dim, concat=False, bias=True
  ) -> Module:
      """
  
      :param gnn_name:
      :param in_dim:
      :param out_dim:
      :param concat: for gat, concat multi-head output or not
      :return: GNN model
      """
      norm = True
      if gnn_name == "gat":
          return GATConv(
              in_dim,
              out_dim,
              1,
              bias=bias,
              concat=False,
              add_self_loops=norm,
          )
      elif gnn_name == "gcn":
          return GCNConv(
              in_dim, out_dim, add_self_loops=True, normalize=norm
          )
      elif gnn_name == "gin":
          return GINConv(torch.nn.Linear(in_dim, out_dim))
      elif gnn_name == "cheb":
          return ChebConv(in_dim, out_dim, K=2, bias=bias)
      elif gnn_name == "sage":
          return SAGEConv(in_dim, out_dim, bias=bias)
      elif gnn_name == "gated":
          return GatedGraphConv(in_dim, out_dim, bias=bias)
      elif gnn_name == "arma":
          return ARMAConv(in_dim, out_dim, bias=bias, normalize=norm)
      elif gnn_name == "sg":
          return SGConv(in_dim, out_dim, bias=bias, normalize=norm)
      elif gnn_name == "linear":
          return LinearConv(in_dim, out_dim, bias=bias)
      elif gnn_name == "skip":
          return SkipConv(in_dim, out_dim, bias=bias)
      elif gnn_name == "zero":
          return ZeroConv(in_dim, out_dim, bias=bias)
      else:
          raise ValueError("No such GNN name")
  
imports: import typing
  from .None import register_nas_space
  from .base import apply_fixed_architecture
  from .base import BaseSpace
  from ...model import BaseAutoModel
  from ....utils import get_logger
  from ..backend import *
  from ..utils import count_parameters, measure_latency
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn import Module
  from .gasso_space import *
  from torch.autograd import Variable
  from collections import namedtuple
label_desc: Use image node_id 1 for calling a global function with example usage: gnn_map(gnn_name, in_dim, out_dim, concat, bias) and returns: GATConv, GCNConv, GINConv, ChebConv, SAGEConv, GatedGraphConv, ARMAConv, SGConv, LinearConv, SkipConv, ZeroConv