GOOD.networks.models.GINs
The Graph Neural Network from the “How Powerful are Graph Neural Networks?” paper.
Classes
|
The Graph Neural Network from the "How Powerful are Graph Neural Networks?" paper. |
|
The modified |
|
The GIN encoder for non-molecule data, using the |
|
GIN feature extractor using the |
|
The GIN encoder for molecule data, using the |
- class GOOD.networks.models.GINs.GIN(config: Union[CommonArgs, Munch])[source]
Bases:
GNNBasicThe Graph Neural Network from the “How Powerful are Graph Neural Networks?” paper.
- Parameters
config (Union[CommonArgs, Munch]) – munchified dictionary of args (
config.model.dim_hidden,config.model.model_layer,config.dataset.dim_node,config.dataset.num_classes,config.dataset.dataset_type)
- forward(*args, **kwargs) Tensor[source]
The GIN model implementation.
- Parameters
*args (list) – argument list for the use of arguments_read. Refer to
arguments_read**kwargs (dict) – key word arguments for the use of arguments_read. Refer to
arguments_read
- Returns (Tensor):
label predictions
- class GOOD.networks.models.GINs.GINEConv(nn: Callable, eps: float = 0.0, train_eps: bool = False, edge_dim: Optional[int] = None, **kwargs)[source]
Bases:
MessagePassingThe modified
GINConvoperator from the “Strategies for Pre-training Graph Neural Networks” paper\[\mathbf{x}^{\prime}_i = h_{\mathbf{\Theta}} \left( (1 + \epsilon) \cdot \mathbf{x}_i + \sum_{j \in \mathcal{N}(i)} \mathrm{ReLU} ( \mathbf{x}_j + \mathbf{e}_{j,i} ) \right)\]that is able to incorporate edge features \(\mathbf{e}_{j,i}\) into the aggregation procedure.
- Parameters
nn (torch.nn.Module) – A neural network \(h_{\mathbf{\Theta}}\) that maps node features
xof shape[-1, in_channels]to shape[-1, out_channels], e.g., defined bytorch.nn.Sequential.eps (float, optional) – (Initial) \(\epsilon\)-value. (default:
0.)train_eps (bool, optional) – If set to
True, \(\epsilon\) will be a trainable parameter. (default:False)edge_dim (int, optional) – Edge feature dimensionality. If set to
None, node and edge feature dimensionality is expected to match. Other-wise, edge features are linearly transformed to match node feature dimensionality. (default:None)**kwargs (optional) – Additional arguments of
torch_geometric.nn.conv.MessagePassing.
- Shapes:
input: node features \((|\mathcal{V}|, F_{in})\) or \(((|\mathcal{V_s}|, F_{s}), (|\mathcal{V_t}|, F_{t}))\) if bipartite, edge indices \((2, |\mathcal{E}|)\), edge features \((|\mathcal{E}|, D)\) (optional)
output: node features \((|\mathcal{V}|, F_{out})\) or \((|\mathcal{V}_t|, F_{out})\) if bipartite
- message(x_j: Tensor, edge_attr: Tensor) Tensor[source]
Constructs messages from node \(j\) to node \(i\) in analogy to \(\phi_{\mathbf{\Theta}}\) for each edge in
edge_index. This function can take any argument as input which was initially passed topropagate(). Furthermore, tensors passed topropagate()can be mapped to the respective nodes \(i\) and \(j\) by appending_ior_jto the variable name, .e.g.x_iandx_j.
- class GOOD.networks.models.GINs.GINEncoder(config: Union[CommonArgs, Munch], *args, **kwargs)[source]
Bases:
BasicEncoderThe GIN encoder for non-molecule data, using the
GINConvoperator for message passing.- Parameters
config (Union[CommonArgs, Munch]) – munchified dictionary of args (
config.model.dim_hidden,config.model.model_layer,config.dataset.dim_node)
- class GOOD.networks.models.GINs.GINFeatExtractor(config: Union[CommonArgs, Munch], **kwargs)[source]
Bases:
GNNBasicGIN feature extractor using the
GINEncoderorGINMolEncoder.- Parameters
config (Union[CommonArgs, Munch]) – munchified dictionary of args (
config.model.dim_hidden,config.model.model_layer,config.dataset.dim_node,config.dataset.dataset_type)
- forward(*args, **kwargs)[source]
GIN feature extractor using the
GINEncoderorGINMolEncoder.- Parameters
*args (list) – argument list for the use of arguments_read. Refer to
arguments_read**kwargs (dict) – key word arguments for the use of arguments_read. Refer to
arguments_read
- Returns (Tensor):
node feature representations
- class GOOD.networks.models.GINs.GINMolEncoder(config: Union[CommonArgs, Munch], **kwargs)[source]
Bases:
BasicEncoderThe GIN encoder for molecule data, using the
GINEConvoperator for message passing.- Parameters
config (Union[CommonArgs, Munch]) – munchified dictionary of args (
config.model.dim_hidden,config.model.model_layer)
- forward(x, edge_index, edge_attr, batch, batch_size, **kwargs)[source]
The GIN encoder for molecule data.
- Parameters
x (Tensor) – node features
edge_index (Tensor) – edge indices
edge_attr (Tensor) – edge attributes
batch (Tensor) – batch indicator
batch_size (int) – Batch size.
- Returns (Tensor):
node feature representations