EGNNConv๏
- class dgl.nn.pytorch.conv.EGNNConv(in_size, hidden_size, out_size, edge_feat_size=0)[source]๏
Bases:
Module
Equivariant Graph Convolutional Layer from E(n) Equivariant Graph Neural Networks
where
, , are node features, coordinate features, and edge features respectively. , , and are two-layer MLPs. is a constant for normalization, computed as .- Parameters:
in_size (int) โ Input feature size; i.e. the size of
.hidden_size (int) โ Hidden feature size; i.e. the size of hidden layer in the two-layer MLPs in
.out_size (int) โ Output feature size; i.e. the size of
.edge_feat_size (int, optional) โ Edge feature size; i.e. the size of
. Default: 0.
Example
>>> import dgl >>> import torch as th >>> from dgl.nn import EGNNConv >>> >>> g = dgl.graph(([0,1,2,3,2,5], [1,2,3,4,0,3])) >>> node_feat, coord_feat, edge_feat = th.ones(6, 10), th.ones(6, 3), th.ones(6, 2) >>> conv = EGNNConv(10, 10, 10, 2) >>> h, x = conv(g, node_feat, coord_feat, edge_feat)
- forward(graph, node_feat, coord_feat, edge_feat=None)[source]๏
Description๏
Compute EGNN layer.
- param graph:
The graph.
- type graph:
DGLGraph
- param node_feat:
The input feature of shape
. is the number of nodes, and must be the same as in_size.- type node_feat:
torch.Tensor
- param coord_feat:
The coordinate feature of shape
. is the number of nodes, and can be any positive integer.- type coord_feat:
torch.Tensor
- param edge_feat:
The edge feature of shape
. is the number of edges, and must be the same as edge_feat_size.- type edge_feat:
torch.Tensor, optional
- returns:
node_feat_out (torch.Tensor) โ The output node feature of shape
where is the same as out_size.coord_feat_out (torch.Tensor) โ The output coordinate feature of shape
where is the same as the input coordinate feature dimension.