code: def arg_parse():
      parser = argparse.ArgumentParser(
          description="Link pred arguments."
      )
      parser.add_argument(
          "--device", type=str, help="CPU / GPU device."
      )
      parser.add_argument(
          "--data_path",
          type=str,
          help="Path to wordnet nx gpickle file.",
      )
      parser.add_argument(
          "--epochs", type=int, help="Number of epochs to train."
      )
      parser.add_argument(
          "--mode",
          type=str,
          help="Link prediction mode. Disjoint or all.",
      )
      parser.add_argument("--model", type=str, help="MlpMessage.")
      parser.add_argument(
          "--edge_message_ratio",
          type=float,
          help="Ratio of edges used for message-passing (only in disjoint mode).",
      )
      parser.add_argument(
          "--neg_sampling_ratio",
          type=float,
          help="Ratio of the number of negative examples to the number of positive examples",
      )
      parser.add_argument(
          "--hidden_dim", type=int, help="Hidden dimension of GNN."
      )
  
      parser.set_defaults(
          device="cuda:0",
          data_path="data/WN18.gpickle",
          epochs=500,
          mode="disjoint",
          model="MlpMessage",
          edge_message_ratio=0.8,
          neg_sampling_ratio=1.0,
          hidden_dim=16,
      )
      return parser.parse_args()
  
imports: import copy
  import argparse
  import torch
  import torch.nn
  import torch.nn.functional
  import networkx
  import numpy
  import sklearn.metrics
  import torch_geometric.nn
  from torch.utils.data import DataLoader
  from deepsnap.dataset import GraphDataset
  from deepsnap.batch import Batch
label_desc: Use image node_id 1 for calling a global function with example usage: arg_parse() and returns: parser