gammagl.layers.conv.RGCNConv¶
- class RGCNConv(in_channels, out_channels, num_relations: int, num_bases=None, num_blocks=None, root_weight: bool = True, add_bias=True)[source]¶
The relational graph convolutional operator from the “Modeling Relational Data with Graph Convolutional Networks” paper
\[\mathbf{x}^{\prime}_i = \mathbf{\Theta}_{\textrm{root}} \cdot \mathbf{x}_i + \sum_{r \in \mathcal{R}} \sum_{j \in \mathcal{N}_r(i)} \frac{1}{|\mathcal{N}_r(i)|} \mathbf{\Theta}_r \cdot \mathbf{x}_j\]where \(\mathcal{R}\) denotes the set of relations, i.e. edge types. Edge type needs to be a one-dimensional
torch.longtensor which stores a relation identifier \(\in \{ 0, \ldots, |\mathcal{R}| - 1\}\) for each edge.- forward(x, edge_index, edge_type=None)[source]¶
- Parameters:
x – The input node features. Can be either a
[num_nodes, in_channels]node feature matrix, or an optional one-dimensional node index tensor (in which case input features are treated as trainable node embeddings). Furthermore,xcan be of typetupledenoting source and destination node features.edge_index – edge index
edge_type – The one-dimensional relation type/index for each edge in
edge_index. Should be onlyNonein caseedge_indexis of typetorch_sparse.tensor.SparseTensor. (default:None)