code: def karate_gnn():
      el = karate.get_edgelist().reset_index(drop=True)
      el.src = el.src.astype("int64")
      el.dst = el.dst.astype("int64")
      all_vertices = np.array_split(np.arange(34), 2)
  
      F = FeatureStore(backend="torch")
      F.add_data(
          torch.arange(len(all_vertices[0]), dtype=torch.float32) * 31,
          "type0",
          "prop0",
      )
      F.add_data(
          torch.arange(len(all_vertices[1]), dtype=torch.float32) * 41,
          "type1",
          "prop0",
      )
  
      N = {
          "type0": len(all_vertices[0]),
          "type1": len(all_vertices[1]),
      }
  
      offsets = {"type0": 0, "type1": N["type0"]}
  
      G = {
          ("type0", "et01", "type1"): el[
              el.src.isin(all_vertices[0])
              & el.dst.isin(all_vertices[1])
          ].reset_index(drop=True),
          ("type1", "et10", "type0"): el[
              el.src.isin(all_vertices[1])
              & el.dst.isin(all_vertices[0])
          ].reset_index(drop=True),
          ("type0", "et00", "type0"): el[
              el.src.isin(all_vertices[0])
              & el.dst.isin(all_vertices[0])
          ],
          ("type1", "et11", "type1"): el[
              el.src.isin(all_vertices[1])
              & el.dst.isin(all_vertices[1])
          ].reset_index(drop=True),
      }
  
      G = {
          (src_type, edge_type, dst_type): (
              torch.tensor(elx["src"].values_host - offsets[src_type]),
              torch.tensor(elx["dst"].values_host - offsets[dst_type]),
          )
          for (src_type, edge_type, dst_type), elx in G.items()
      }
  
      return F, G, N
  
imports: import os
  import pytest
  from dask_cuda.initialize import initialize
  from dask_cuda import LocalCUDACluster
  from dask.distributed import Client
  from cugraph.dask.comms import comms
  from cugraph.dask.common.mg_utils import get_visible_devices
  from cugraph.testing.mg_utils import stop_dask_client
  import torch
  import numpy
  from cugraph.gnn import FeatureStore
  from cugraph.datasets import karate
  import tempfile
label_desc: Use image node_id 2 for calling a global function with example usage: karate_gnn() and returns: F,  G,  N