code: def load_data(dataset_str):
      """Load data."""
      names = ["x", "y", "tx", "ty", "allx", "ally", "graph"]
      objects = []
      for i in range(len(names)):
          with open(
              "data/ind.{}.{}".format(dataset_str, names[i]), "rb"
          ) as f:
              if sys.version_info > (3, 0):
                  objects.append(pkl.load(f, encoding="latin1"))
              else:
                  objects.append(pkl.load(f))
  
      x, y, tx, ty, allx, ally, graph = tuple(objects)
      test_idx_reorder = parse_index_file(
          "data/ind.{}.test.index".format(dataset_str)
      )
      test_idx_range = np.sort(test_idx_reorder)
  
      if dataset_str == "citeseer":
          # Fix citeseer dataset (there are some isolated nodes in the graph)
          # Find isolated nodes, add them as zero-vecs into the right position
          test_idx_range_full = range(
              min(test_idx_reorder), max(test_idx_reorder) + 1
          )
          tx_extended = sp.lil_matrix(
              (len(test_idx_range_full), x.shape[1])
          )
          tx_extended[test_idx_range - min(test_idx_range), :] = tx
          tx = tx_extended
          ty_extended = np.zeros((len(test_idx_range_full), y.shape[1]))
          ty_extended[test_idx_range - min(test_idx_range), :] = ty
          ty = ty_extended
  
      features = sp.vstack((allx, tx)).tolil()
      features[test_idx_reorder, :] = features[test_idx_range, :]
      adj = nx.adjacency_matrix(nx.from_dict_of_lists(graph))
  
      labels = np.vstack((ally, ty))
      labels[test_idx_reorder, :] = labels[test_idx_range, :]
  
      idx_test = test_idx_range.tolist()
      idx_train = range(len(y))
      idx_val = range(len(y), len(y) + 500)
  
      train_mask = sample_mask(idx_train, labels.shape[0])
      val_mask = sample_mask(idx_val, labels.shape[0])
      test_mask = sample_mask(idx_test, labels.shape[0])
  
      y_train = np.zeros(labels.shape)
      y_val = np.zeros(labels.shape)
      y_test = np.zeros(labels.shape)
      y_train[train_mask, :] = labels[train_mask, :]
      y_val[val_mask, :] = labels[val_mask, :]
      y_test[test_mask, :] = labels[test_mask, :]
  
      return (
          adj,
          features,
          y_train,
          y_val,
          y_test,
          train_mask,
          val_mask,
          test_mask,
      )
  
file_path: OpenNE/src/openne/gcn/utils.py
imports: import numpy
  import pickle
  import networkx
  import scipy.sparse
  from scipy.sparse.linalg.eigen.arpack import eigsh
  import sys
label_desc: Use image node_id 3 for calling a global function with example usage: load_data(dataset_str) and returns: adj,  features,  y_train,  y_val,  y_test,  train_mask,  val_mask,  test_mask