layers¶
Layers¶
-
class
cogdl.layers.gcn_layer.
GCNLayer
(in_features, out_features, dropout=0.0, activation=None, residual=False, norm=None, bias=True)[source]¶ Bases:
torch.nn.modules.module.Module
Simple GCN layer, similar to https://arxiv.org/abs/1609.02907
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.gat_layer.
GATLayer
(in_features, out_features, nhead=1, alpha=0.2, attn_drop=0.5, activation=None, residual=False, norm=None)[source]¶ Bases:
torch.nn.modules.module.Module
Sparse version GAT layer, similar to https://arxiv.org/abs/1710.10903
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.sage_layer.
SAGELayer
(in_feats, out_feats, normalize=False, aggr='mean', dropout=0.0, norm=None, activation=None)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.gin_layer.
GINLayer
(apply_func=None, eps=0, train_eps=True)[source]¶ Bases:
torch.nn.modules.module.Module
Graph Isomorphism Network layer from paper “How Powerful are Graph Neural Networks?”.
\[h_i^{(l+1)} = f_\Theta \left((1 + \epsilon) h_i^{l} + \mathrm{sum}\left(\left\{h_j^{l}, j\in\mathcal{N}(i) \right\}\right)\right)\]- apply_func : callable layer function)
- layer or function applied to update node feature
- eps : float32, optional
- Initial epsilon value.
- train_eps : bool, optional
- If True, epsilon will be a learnable parameter.
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
class
cogdl.layers.gcnii_layer.
GCNIILayer
(n_channels, alpha=0.1, beta=1, residual=False)[source]¶ Bases:
torch.nn.modules.module.Module
-
class
cogdl.layers.deepergcn_layer.
BondEncoder
(bond_dim_list, emb_size)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(edge_attr)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.deepergcn_layer.
EdgeEncoder
(in_feats, out_feats, bias=False)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(edge_attr)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.deepergcn_layer.
GENConv
(in_feats: int, out_feats: int, aggr: str = 'softmax_sg', beta: float = 1.0, p: float = 1.0, learn_beta: bool = False, learn_p: bool = False, use_msg_norm: bool = False, learn_msg_scale: bool = True, norm: Optional[str] = None, residual: bool = False, activation: Optional[str] = None, num_mlp_layers: int = 2, edge_attr_size: Optional[list] = None)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.deepergcn_layer.
ResGNNLayer
(conv, in_channels, activation='relu', norm='batchnorm', dropout=0.0, out_norm=None, out_channels=-1, residual=True, checkpoint_grad=False)[source]¶ Bases:
torch.nn.modules.module.Module
Implementation of DeeperGCN in paper “DeeperGCN: All You Need to Train Deeper GCNs” <https://arxiv.org/abs/2006.07739>
- conv : nn.Module
- An instance of GNN Layer, recieving (graph, x) as inputs
- n_channels : int
- size of input features
activation : str norm: str
type of normalization,batchnorm
as defaultdropout : float checkpoint_grad : bool
-
forward
(graph, x, dropout=None, *args, **kwargs)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
class
cogdl.layers.disengcn_layer.
DisenGCNLayer
(in_feats, out_feats, K, iterations, tau=1.0, activation='leaky_relu')[source]¶ Bases:
torch.nn.modules.module.Module
Implementation of “Disentangled Graph Convolutional Networks” <http://proceedings.mlr.press/v97/ma19a.html>.
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.han_layer.
AttentionLayer
(num_features)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.han_layer.
HANLayer
(num_edge, w_in, w_out)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.mlp_layer.
MLP
(in_feats, out_feats, hidden_size, num_layers, dropout=0.0, activation='relu', norm=None, act_first=False, bias=True)[source]¶ Bases:
torch.nn.modules.module.Module
Multilayer perception with normalization
\[x^{(i+1)} = \sigma(W^{i}x^{(i)})\]- in_feats : int
- Size of each input sample.
- out_feats : int
- Size of each output sample.
- hidden_dim : int
- Size of hidden layer dimension.
- use_bn : bool, optional
- Apply batch normalization if True, default: `True).
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
class
cogdl.layers.pprgo_layer.
LinearLayer
(in_features, out_features, bias=True)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(input)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.pprgo_layer.
PPRGoLayer
(in_feats, hidden_size, out_feats, num_layers, dropout, activation='relu')[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.rgcn_layer.
RGCNLayer
(in_feats, out_feats, num_edge_types, regularizer='basis', num_bases=None, self_loop=True, dropout=0.0, self_dropout=0.0, layer_norm=True, bias=True)[source]¶ Bases:
torch.nn.modules.module.Module
- Implementation of Relational-GCN in paper “Modeling Relational Data with Graph Convolutional Networks”
<https://arxiv.org/abs/1703.06103>
- in_feats : int
- Size of each input embedding.
- out_feats : int
- Size of each output embedding.
- num_edge_type : int
- The number of edge type in knowledge graph.
- regularizer : str, optional
- Regularizer used to avoid overfitting,
basis
orbdd
, default :basis
. - num_bases : int, optional
- The number of basis, only used when regularizer is basis, default :
None
. - self_loop : bool, optional
- Add self loop embedding if True, default :
True
.
dropout : float self_dropout : float, optional
Dropout rate of self loop embedding, default :0.0
- layer_norm : bool, optional
- Use layer normalization if True, default :
True
bias : bool
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
Modified from https://github.com/GraphSAINT/GraphSAINT
-
class
cogdl.layers.saint_layer.
SAINTLayer
(dim_in, dim_out, dropout=0.0, act='relu', order=1, aggr='mean', bias='norm-nn', **kwargs)[source]¶ Bases:
torch.nn.modules.module.Module
-
class
cogdl.layers.sgc_layer.
SGCLayer
(in_features, out_features, order=3)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-
-
class
cogdl.layers.mixhop_layer.
MixHopLayer
(num_features, adj_pows, dim_per_pow)[source]¶ Bases:
torch.nn.modules.module.Module
-
forward
(graph, x)[source]¶ Defines the computation performed at every call.
Should be overridden by all subclasses.
Note
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
-