Loads input dataset from dataset/NAME/NAME.txt file
(self)
| 182 | ) |
| 183 | |
| 184 | def process(self): |
| 185 | """Loads input dataset from dataset/NAME/NAME.txt file""" |
| 186 | if self.verbose: |
| 187 | print("loading data...") |
| 188 | self.file = self._file_path() |
| 189 | with open(self.file, "r") as f: |
| 190 | # line_1 == N, total number of graphs |
| 191 | self.N = int(f.readline().strip()) |
| 192 | |
| 193 | for i in range(self.N): |
| 194 | if (i + 1) % 10 == 0 and self.verbose is True: |
| 195 | print("processing graph {}...".format(i + 1)) |
| 196 | |
| 197 | grow = f.readline().strip().split() |
| 198 | # line_2 == [n_nodes, l] is equal to |
| 199 | # [node number of a graph, class label of a graph] |
| 200 | n_nodes, glabel = [int(w) for w in grow] |
| 201 | |
| 202 | # relabel graphs |
| 203 | if glabel not in self.glabel_dict: |
| 204 | mapped = len(self.glabel_dict) |
| 205 | self.glabel_dict[glabel] = mapped |
| 206 | |
| 207 | self.labels.append(self.glabel_dict[glabel]) |
| 208 | |
| 209 | g = dgl_graph(([], [])) |
| 210 | g.add_nodes(n_nodes) |
| 211 | |
| 212 | nlabels = [] # node labels |
| 213 | nattrs = [] # node attributes if it has |
| 214 | m_edges = 0 |
| 215 | |
| 216 | for j in range(n_nodes): |
| 217 | nrow = f.readline().strip().split() |
| 218 | |
| 219 | # handle edges and attributes(if has) |
| 220 | tmp = int(nrow[1]) + 2 # tmp == 2 + #edges |
| 221 | if tmp == len(nrow): |
| 222 | # no node attributes |
| 223 | nrow = [int(w) for w in nrow] |
| 224 | elif tmp > len(nrow): |
| 225 | nrow = [int(w) for w in nrow[:tmp]] |
| 226 | nattr = [float(w) for w in nrow[tmp:]] |
| 227 | nattrs.append(nattr) |
| 228 | else: |
| 229 | raise Exception("edge number is incorrect!") |
| 230 | |
| 231 | # relabel nodes if it has labels |
| 232 | # if it doesn't have node labels, then every nrow[0]==0 |
| 233 | if not nrow[0] in self.nlabel_dict: |
| 234 | mapped = len(self.nlabel_dict) |
| 235 | self.nlabel_dict[nrow[0]] = mapped |
| 236 | |
| 237 | nlabels.append(self.nlabel_dict[nrow[0]]) |
| 238 | |
| 239 | m_edges += nrow[1] |
| 240 | g.add_edges(j, nrow[2:]) |
| 241 |
nothing calls this directly
no test coverage detected