SBMMixtureDataset
- class dgl.data.SBMMixtureDataset(n_graphs, n_nodes, n_communities, k=2, avg_deg=3, pq='Appendix_C', rng=None)[source]
Bases:
DGLDataset
Symmetric Stochastic Block Model Mixture
Reference: Appendix C of Supervised Community Detection with Hierarchical Graph Neural Networks
- Parameters:
n_graphs (int) – Number of graphs.
n_nodes (int) – Number of nodes.
n_communities (int) – Number of communities.
k (int, optional) – Multiplier. Default: 2
avg_deg (int, optional) – Average degree. Default: 3
pq (list of pair of nonnegative float or str, optional) – Random densities. This parameter is for future extension, for now it’s always using the default value. Default: Appendix_C
rng (numpy.random.RandomState, optional) – Random number generator. If not given, it’s numpy.random.RandomState() with seed=None, which read data from /dev/urandom (or the Windows analogue) if available or seed from the clock otherwise. Default: None
- Raises:
RuntimeError is raised if pq is not a list or string. –
Examples
>>> data = SBMMixtureDataset(n_graphs=16, n_nodes=10000, n_communities=2) >>> from torch.utils.data import DataLoader >>> dataloader = DataLoader(data, batch_size=1, collate_fn=data.collate_fn) >>> for graph, line_graph, graph_degrees, line_graph_degrees, pm_pd in dataloader: ... # your code here
- __getitem__(idx)[source]
Get one example by index
- Parameters:
idx (int) – Item index
- Returns:
graph (
dgl.DGLGraph
) – The original graphline_graph (
dgl.DGLGraph
) – The line graph of graphgraph_degree (numpy.ndarray) – In degrees for each node in graph
line_graph_degree (numpy.ndarray) – In degrees for each node in line_graph
pm_pd (numpy.ndarray) – Edge indicator matrices Pm and Pd
- collate_fn(x)[source]
The collate function for dataloader
- Parameters:
x (tuple) –
a batch of data that contains:
- graph:
dgl.DGLGraph
The original graph
- graph:
- line_graph:
dgl.DGLGraph
The line graph of graph
- line_graph:
- graph_degree: numpy.ndarray
In degrees for each node in graph
- line_graph_degree: numpy.ndarray
In degrees for each node in line_graph
- pm_pd: numpy.ndarray
Edge indicator matrices Pm and Pd
- Returns:
g_batch (
dgl.DGLGraph
) – Batched graphslg_batch (
dgl.DGLGraph
) – Batched line graphsdegg_batch (numpy.ndarray) – A batch of in degrees for each node in g_batch
deglg_batch (numpy.ndarray) – A batch of in degrees for each node in lg_batch
pm_pd_batch (numpy.ndarray) – A batch of edge indicator matrices Pm and Pd