dgl.rst 4.43 KB
Newer Older
Minjie Wang's avatar
Minjie Wang committed
1
2
3
4
5
6
.. _apidgl:

dgl
=============================

.. currentmodule:: dgl
7
8
9
.. automodule:: dgl

.. _api-graph-create-ops:
Minjie Wang's avatar
Minjie Wang committed
10
11
12
13

Graph Create Ops
-------------------------

14
15
Operators for constructing :class:`DGLGraph` from raw data formats.

Minjie Wang's avatar
Minjie Wang committed
16
17
18
19
20
21
22
23
24
25
26
27
28
.. autosummary::
    :toctree: ../../generated/

    graph
    heterograph
    from_scipy
    from_networkx
    bipartite_from_scipy
    bipartite_from_networkx
    rand_graph
    rand_bipartite
    knn_graph
    segmented_knn_graph
29
    radius_graph
30
31
    create_block
    block_to_graph
Mufei Li's avatar
Mufei Li committed
32
    merge
Minjie Wang's avatar
Minjie Wang committed
33

34
35
.. _api-subgraph-extraction:

36
Subgraph Extraction Ops
Minjie Wang's avatar
Minjie Wang committed
37
38
-------------------------------------

39
40
Operators for extracting and returning subgraphs.

Minjie Wang's avatar
Minjie Wang committed
41
42
43
44
45
46
47
48
49
.. autosummary::
    :toctree: ../../generated/

    node_subgraph
    edge_subgraph
    node_type_subgraph
    edge_type_subgraph
    in_subgraph
    out_subgraph
50
51
    khop_in_subgraph
    khop_out_subgraph
Minjie Wang's avatar
Minjie Wang committed
52

53
54
55
56
57
58
.. _api-transform:

Graph Transform Ops
----------------------------------

Operators for generating new graphs by manipulating the structure of the existing ones.
Minjie Wang's avatar
Minjie Wang committed
59
60
61
62
63

.. autosummary::
    :toctree: ../../generated/

    add_edges
64
65
    add_nodes
    add_reverse_edges
Minjie Wang's avatar
Minjie Wang committed
66
    add_self_loop
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
    adj_product_graph
    adj_sum_graph
    as_heterograph
    as_immutable_graph
    compact_graphs
    khop_adj
    khop_graph
    knn_graph
    laplacian_lambda_max
    laplacian_pe
    line_graph
    metapath_reachable_graph
    metis_partition
    metis_partition_assignment
    norm_by_dst
    partition_graph_with_halo
    radius_graph
    random_walk_pe
    remove_edges
    remove_nodes
Minjie Wang's avatar
Minjie Wang committed
87
    remove_self_loop
88
    reorder_graph
Minjie Wang's avatar
Minjie Wang committed
89
    reverse
90
91
92
    segmented_knn_graph
    sort_csr_by_tag
    sort_csc_by_tag
Minjie Wang's avatar
Minjie Wang committed
93
    to_bidirected
94
    to_bidirected_stale
Minjie Wang's avatar
Minjie Wang committed
95
    to_block
96
97
98
    to_double
    to_float
    to_half
99
100
    to_heterogeneous
    to_homogeneous
Minjie Wang's avatar
Minjie Wang committed
101
    to_networkx
102
103
    to_simple
    to_simple_graph
Minjie Wang's avatar
Minjie Wang committed
104

105
106
107
108
109
110
111
112
113
114
115
116
117
.. _api-positional-encoding:

Graph Positional Encoding Ops:
-----------------------------------------

Operators for generating positional encodings of each node.

.. autosummary::
    :toctree: ../../generated

    random_walk_pe
    laplacian_pe

118
119
120
121
122
123
124
125
126
127
128
.. _api-partition:

Graph Partition Utilities
-------------------------
.. autosummary::
    :toctree: ../../generated/

    metis_partition
    metis_partition_assignment
    partition_graph_with_halo

129
130
131
.. _api-batch:

Batching and Reading Out Ops
Minjie Wang's avatar
Minjie Wang committed
132
133
-------------------------------

134
135
136
Operators for batching multiple graphs into one for batch processing and
operators for computing graph-level representation for both single and batched graphs.

Minjie Wang's avatar
Minjie Wang committed
137
138
139
140
141
.. autosummary::
    :toctree: ../../generated/

    batch
    unbatch
142
    slice_batch
Minjie Wang's avatar
Minjie Wang committed
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
    readout_nodes
    readout_edges
    sum_nodes
    sum_edges
    mean_nodes
    mean_edges
    max_nodes
    max_edges
    softmax_nodes
    softmax_edges
    broadcast_nodes
    broadcast_edges
    topk_nodes
    topk_edges

158
Adjacency Related Utilities
Minjie Wang's avatar
Minjie Wang committed
159
160
-------------------------------

161
162
Utilities for computing adjacency matrix and Lapacian matrix.

Minjie Wang's avatar
Minjie Wang committed
163
164
165
166
167
168
.. autosummary::
    :toctree: ../../generated/

    khop_adj
    laplacian_lambda_max

169
Graph Traversal & Message Propagation
Minjie Wang's avatar
Minjie Wang committed
170
171
------------------------------------------

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
DGL implements graph traversal algorithms implemented as python generators,
which returns the visited set of nodes or edges (in ID tensor) at each iteration.
The naming convention is ``<algorithm>_[nodes|edges]_generator``.
An example usage is as follows.

.. code:: python

    g = ...  # some DGLGraph
    for nodes in dgl.bfs_nodes_generator(g, 0):
        do_something(nodes)

.. autosummary::
    :toctree: ../../generated/

    bfs_nodes_generator
    bfs_edges_generator
    topological_nodes_generator
    dfs_edges_generator
    dfs_labeled_edges_generator

DGL provides APIs to perform message passing following graph traversal order. ``prop_nodes_XXX``
calls traversal algorithm ``XXX`` and triggers :func:`~DGLGraph.pull()` on the visited node
set at each iteration. ``prop_edges_YYY`` applies traversal algorithm ``YYY`` and triggers
:func:`~DGLGraph.send_and_recv()` on the visited edge set at each iteration.
196

Minjie Wang's avatar
Minjie Wang committed
197
198
199
200
201
202
203
204
205
206
207
.. autosummary::
    :toctree: ../../generated/

    prop_nodes
    prop_nodes_bfs
    prop_nodes_topo
    prop_edges
    prop_edges_dfs

Utilities
-----------------------------------------------
208

209
210
Other utilities for controlling randomness, saving and loading graphs, functions that applies
the same function to every elements in a container, etc.
211

Minjie Wang's avatar
Minjie Wang committed
212
213
214
215
.. autosummary::
    :toctree: ../../generated/

    seed
Jinjing Zhou's avatar
Jinjing Zhou committed
216
217
    save_graphs
    load_graphs
218
    apply_each