dgl.nn.mxnet¶
dgl.nn.mxnet.conv¶
MXNet modules for graph convolutions.
-
class
dgl.nn.mxnet.conv.
GraphConv
(in_feats, out_feats, norm=True, bias=True, activation=None)[source]¶ Bases:
mxnet.gluon.block.Block
Apply graph convolution over an input signal.
Graph convolution is introduced in GCN and can be described as below:
\[h_i^{(l+1)} = \sigma(b^{(l)} + \sum_{j\in\mathcal{N}(i)}\frac{1}{c_{ij}}h_j^{(l)}W^{(l)})\]where \(\mathcal{N}(i)\) is the neighbor set of node \(i\). \(c_{ij}\) is equal to the product of the square root of node degrees: \(\sqrt{|\mathcal{N}(i)|}\sqrt{|\mathcal{N}(j)|}\). \(\sigma\) is an activation function.
The model parameters are initialized as in the original implementation where the weight \(W^{(l)}\) is initialized using Glorot uniform initialization and the bias is initialized to be zero.
Notes
Zero in degree nodes could lead to invalid normalizer. A common practice to avoid this is to add a self-loop for each node in the graph, which can be achieved by:
>>> g = ... # some DGLGraph >>> g.add_edges(g.nodes(), g.nodes())
Parameters: - in_feats (int) – Number of input features.
- out_feats (int) – Number of output features.
- norm (bool, optional) – If True, the normalizer \(c_{ij}\) is applied. Default:
True
. - bias (bool, optional) – If True, adds a learnable bias to the output. Default:
True
. - activation (callable activation function/layer or None, optional) – If not None, applies an activation function to the updated node features.
Default:
None
.
-
weight
¶ mxnet.gluon.parameter.Parameter – The learnable weight tensor.
-
bias
¶ mxnet.gluon.parameter.Parameter – The learnable bias tensor.
-
forward
(feat, graph)[source]¶ Compute graph convolution.
Notes
- Input shape: \((N, *, \text{in_feats})\) where * means any number of additional dimensions, \(N\) is the number of nodes.
- Output shape: \((N, *, \text{out_feats})\) where all but the last dimension are the same shape as the input.
Parameters: - feat (mxnet.NDArray) – The input feature
- graph (DGLGraph) – The graph.
Returns: The output feature
Return type: mxnet.NDArray