code: def load_ogb_product():
      name = "ogbn-products"
      os.symlink("/tmp/dataset/", os.path.join(os.getcwd(), "dataset"))
  
      print("load", name)
      data = DglNodePropPredDataset(name=name)
      print("finish loading", name)
      splitted_idx = data.get_idx_split()
      graph, labels = data[0]
      labels = labels[:, 0]
  
      graph.ndata["label"] = labels
      in_feats = graph.ndata["feat"].shape[1]
      num_labels = len(
          torch.unique(labels[torch.logical_not(torch.isnan(labels))])
      )
  
      # Find the node IDs in the training, validation, and test set.
      train_nid, val_nid, test_nid = (
          splitted_idx["train"],
          splitted_idx["valid"],
          splitted_idx["test"],
      )
      train_mask = torch.zeros((graph.num_nodes(),), dtype=torch.bool)
      train_mask[train_nid] = True
      val_mask = torch.zeros((graph.num_nodes(),), dtype=torch.bool)
      val_mask[val_nid] = True
      test_mask = torch.zeros((graph.num_nodes(),), dtype=torch.bool)
      test_mask[test_nid] = True
      graph.ndata["train_mask"] = train_mask
      graph.ndata["val_mask"] = val_mask
      graph.ndata["test_mask"] = test_mask
  
      return OGBDataset(graph, num_labels)
  
imports: import inspect
  import json
  import os
  import pickle
  import shutil
  import time
  import zipfile
  from functools import partial, reduce, wraps
  from timeit import default_timer
  import dgl
  import numpy
  import pandas
  import requests
  import torch
  from ogb.nodeproppred import DglNodePropPredDataset
  import traceback
  from _thread import start_new_thread
  import torch.multiprocessing
label_desc: Use image node_id 7 for calling a global function with example usage: load_ogb_product() and returns: OGBDataset