code: def create_model(
      to_device=True, dim_in=None, dim_out=None
  ) -> GraphGymModule:
      r"""Create model for graph machine learning.
  
      Args:
          to_device (bool, optional): Whether to transfer the model to the
              specified device. (default: :obj:`True`)
          dim_in (int, optional): Input dimension to the model
          dim_out (int, optional): Output dimension to the model
      """
      dim_in = cfg.share.dim_in if dim_in is None else dim_in
      dim_out = cfg.share.dim_out if dim_out is None else dim_out
      # binary classification, output dim = 1
      if "classification" == cfg.dataset.task_type and dim_out == 2:
          dim_out = 1
  
      model = GraphGymModule(dim_in, dim_out, cfg)
      if to_device:
          model.to(torch.device(cfg.accelerator))
      return model
  
imports: import time
  from typing import Any, Dict, Tuple
  import torch
  from torch_geometric.graphgym.config import cfg
  from torch_geometric.graphgym.imports import LightningModule
  from torch_geometric.graphgym.loss import compute_loss
  from torch_geometric.graphgym.models.gnn import GNN
  from torch_geometric.graphgym.optim import create_optimizer, create_scheduler
  from torch_geometric.graphgym.register import network_dict, register_network
label_desc: Use image node_id 1 for calling a global function with example usage: create_model(to_device, dim_in, dim_out) and returns: model