MCPcopy
hub / github.com/dmlc/dgl / process

Method process

python/dgl/data/gindt.py:184–358  ·  view source on GitHub ↗

Loads input dataset from dataset/NAME/NAME.txt file

(self)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 9

_file_pathMethod · 0.95
formatMethod · 0.80
appendMethod · 0.80
asnumpyMethod · 0.80
add_nodesMethod · 0.45
add_edgesMethod · 0.45
num_nodesMethod · 0.45
in_degreesMethod · 0.45
unionMethod · 0.45

Tested by

no test coverage detected