rindti.layers¶
Contents
Base layer¶
Node layers¶
- class ChebConvNet(input_dim: int, output_dim: int, hidden_dim: int = 32, K: int = 1, num_layers: int = 4, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerChebyshev Convolution.
Refer to
torch_geometric.nn.conv.ChebConvfor more details.- Parameters
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], **kwargs) torch.Tensor[source]¶
- class FilmConvNet(input_dim: int, output_dim: int, hidden_dim: int = 32, edge_dim: Optional[int] = None, num_layers: int = 10, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerFiLM Convolution.
Refer to
torch_geometric.nn.conv.FiLMConvfor more details.- Parameters
input_dim (int) – Size of the input vector
output_dim (int) – Size of the output vector
hidden_dim (int, optional) – Size of the hidden layer(s). Defaults to 32.
edge_dim (int, optional) – Size of the edge input vector. Defaults to None.
num_layers (int, optional) – Number of layers. Defaults to 10.
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], edge_feats: Optional[torch.Tensor] = None, **kwargs) torch.Tensor[source]¶
- class GatConvNet(input_dim, output_dim: int, hidden_dim: int = 32, heads: int = 4, num_layers: int = 4, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerGraph Attention Layer.
Refer to
torch_geometric.nn.conv.GATConvfor more details.- Parameters
input_dim (int) – Size of the input vector
output_dim (int) – Size of the output vector
hidden_dim (int, optional) – Size of the hidden vector. Defaults to 32.
heads (int, optional) – Number of heads for multi-head attention. Defaults to 4.
num_layers (int, optional) – Number of layers. Defaults to 4.
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], **kwargs) torch.Tensor[source]¶
- class GINConvNet(input_dim: int, output_dim: int, hidden_dim: int = 64, num_layers: int = 3, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerGraph Isomorphism Network.
Refer to
torch_geometric.nn.conv.GINConvfor more details.- Parameters
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], **kwargs) torch.Tensor[source]¶
- class PNAConvNet(input_dim: int, output_dim: int, hidden_dim: int = 32, edge_dim: Optional[int] = None, deg: Optional[torch.Tensor] = None, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerPrincipal Neighborhood Aggregation.
Refer to
torch_geometric.nn.conv.PNAConvfor more details.- Parameters
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], **kwargs) torch.Tensor[source]¶
- class TransformerNet(input_dim, output_dim: int, hidden_dim: int = 32, dropout: float = 0.1, edge_dim: Optional[int] = None, edge_type: str = 'none', heads: int = 1, num_layers: int = 3, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerTransformer Network.
Refer to
torch_geometric.nn.conv.TransformerConvfor more details.- Parameters
input_dim (int) – Size of the input vector
output_dim (int) – Size of the output vector
hidden_dim (int, optional) – Size of the hidden vector. Defaults to 32.
dropout (float, optional) – Dropout probability. Defaults to 0.1.
edge_dim (int, optional) – Size of the edge vector. Defaults to None.
edge_type (int, optional) – Number of edge types. Defaults to “none.
heads (int, optional) – Number of heads. Defaults to 1.
num_layers (int, optional) – Number of layers. Defaults to 3.
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], edge_feats: Optional[torch.Tensor] = None, **kwargs) torch.Tensor[source]¶
Pooling layers¶
- class DiffPoolNet(input_dim: int, output_dim: int, hidden_dim: int = 128, max_nodes: int = 600, dropout: float = 0.2, ratio: float = 0.25, pooling_method: str = 'mincut', **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerDifferential Pooling module.
Refer to
torch_geometric.nn.dense.dense_diff_poolandtorch_geometric.nn.dense.dense_mincut_poolfor more details.- Parameters
input_dim (int) – Size of the input vector
output_dim (int) – Size of the output vector
hidden_dim (int, optional) – Size of the hidden vector. Defaults to 32.
max_nodes (int, optional) – Maximal number of nodes in a graph. Defaults to 600.
dropout (float, optional) – Dropout ratio. Defaults to 0.2.
ratio (float, optional) – Pooling ratio. Defaults to 0.25.
pooling_method (str, optional) – Type of pooling. Defaults to “mincut”.
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], batch: torch.Tensor, **kwargs) torch.Tensor[source]¶
- class GMTNet(input_dim: int, output_dim: int, hidden_dim: int = 128, ratio: float = 0.25, max_nodes: int = 600, num_heads: int = 4, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerGraph Multiset Transformer pooling.
Refer to
torch_geometric.nn.glob.GraphMultisetTransformerfor more details.- Parameters
input_dim (int) – Size of the input vector
output_dim (int) – Size of the output vector
hidden_dim (int, optional) – Size of the hidden layer(s). Defaults to 128.
ratio (float, optional) – Ratio of the number of nodes to be pooled. Defaults to 0.25.
max_nodes (int, optional) – Maximal number of nodes in a graph. Defaults to 600.
num_heads (int, optional) – Number of heads. Defaults to 4.
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], batch: torch.LongTensor) torch.Tensor[source]¶
- class MeanPool(*args, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerMean Pooling module. Simply averages the node features.
- forward(x: torch.Tensor, edge_index: Union[torch.Tensor, torch_sparse.tensor.SparseTensor], batch: torch.Tensor, **kwargs) torch.Tensor[source]¶
Other layers¶
- class MLP(input_dim: int, out_dim: int, hidden_dim: int = 64, num_layers: int = 2, dropout: float = 0.2, **kwargs)[source]¶
Bases:
rindti.layers.base_layer.BaseLayerSimple Multi-layer perceptron.
Refer to
torch.nn.Sequentialfor more details.- Parameters
- forward(x: torch.Tensor) torch.Tensor[source]¶