(dataset_str)
| 97 | |
| 98 | |
| 99 | def load_data(dataset_str): |
| 100 | names = ['x', 'y', 'tx', 'ty', 'allx', 'ally', 'graph'] |
| 101 | objects = [] |
| 102 | for i in range(len(names)): |
| 103 | with open("node_raw_data/{}/ind.{}.{}".format(dataset_str, dataset_str, names[i]), 'rb') as f: |
| 104 | if sys.version_info > (3, 0): |
| 105 | objects.append(pkl.load(f, encoding='latin1')) |
| 106 | else: |
| 107 | objects.append(pkl.load(f)) |
| 108 | |
| 109 | x, y, tx, ty, allx, ally, graph = tuple(objects) |
| 110 | test_idx_reorder = parse_index_file("node_raw_data/{}/ind.{}.test.index".format(dataset_str, dataset_str)) |
| 111 | test_idx_range = np.sort(test_idx_reorder) |
| 112 | |
| 113 | if dataset_str == 'citeseer': |
| 114 | # Fix citeseer dataset (there are some isolated nodes in the graph) |
| 115 | # Find isolated nodes, add them as zero-vecs into the right position |
| 116 | test_idx_range_full = range(min(test_idx_reorder), max(test_idx_reorder)+1) |
| 117 | tx_extended = sp.sparse.lil_matrix((len(test_idx_range_full), x.shape[1])) |
| 118 | tx_extended[test_idx_range-min(test_idx_range), :] = tx |
| 119 | tx = tx_extended |
| 120 | ty_extended = np.zeros((len(test_idx_range_full), y.shape[1])) |
| 121 | ty_extended[test_idx_range-min(test_idx_range), :] = ty |
| 122 | ty = ty_extended |
| 123 | |
| 124 | features = sp.sparse.vstack((allx, tx)).tolil() |
| 125 | features[test_idx_reorder, :] = features[test_idx_range, :] |
| 126 | adj = nx.adjacency_matrix(nx.from_dict_of_lists(graph)) |
| 127 | |
| 128 | labels = np.vstack((ally, ty)) |
| 129 | labels[test_idx_reorder, :] = labels[test_idx_range, :] |
| 130 | |
| 131 | return adj, features, labels |
| 132 | |
| 133 | |
| 134 | def eig_dgl_adj_sparse(g, sm=0, lm=0): |
no test coverage detected