code: def split_edges(p, edges, data, non_train_ratio=0.2):
      e = edges.shape[1]
      edges = edges[:, np.random.permutation(e)]
      split1 = int((1 - non_train_ratio) * e)
      split2 = int((1 - non_train_ratio / 2) * e)
  
      data.update(
          {
              "{}_edges_train".format(p): edges[:, :split1],  # 80%
              "{}_edges_val".format(p): edges[:, split1:split2],  # 10%
              "{}_edges_test".format(p): edges[:, split2:],  # 10%
          }
      )
  
imports: import multiprocessing
  import random
  from multiprocessing import get_context
  import networkx
  import numpy
  import torch
  from tqdm.auto import tqdm
label_desc: Use image node_id 3 for calling a global function with example usage: split_edges(p, edges, data, non_train_ratio) without return types