# torch_geometric.nn.conv.SSGConv

class SSGConv(in_channels: int, out_channels: int, alpha: float, K: int = 1, cached: bool = False, add_self_loops: bool = True, bias: bool = True, **kwargs)[source]

Bases: MessagePassing

The simple spectral graph convolutional operator from the “Simple Spectral Graph Convolution” paper

$\mathbf{X}^{\prime} = \frac{1}{K} \sum_{k=1}^K\left((1-\alpha) {\left(\mathbf{\hat{D}}^{-1/2} \mathbf{\hat{A}} \mathbf{\hat{D}}^{-1/2} \right)}^k \mathbf{X}+\alpha \mathbf{X}\right) \mathbf{\Theta},$

where $$\mathbf{\hat{A}} = \mathbf{A} + \mathbf{I}$$ denotes the adjacency matrix with inserted self-loops and $$\hat{D}_{ii} = \sum_{j=0} \hat{A}_{ij}$$ its diagonal degree matrix. The adjacency matrix can include other values than 1 representing edge weights via the optional edge_weight tensor. SSGConv is an improved operator of SGConv by introducing the alpha parameter to address the oversmoothing issue.

Parameters
• in_channels (int) – Size of each input sample, or -1 to derive the size from the first input(s) to the forward method.

• out_channels (int) – Size of each output sample.

• alpha (float) – Teleport probability $$\alpha \in [0, 1]$$.

• K (int, optional) – Number of hops $$K$$. (default: 1)

• cached (bool, optional) – If set to True, the layer will cache the computation of $$\frac{1}{K} \sum_{k=1}^K\left((1-\alpha) {\left(\mathbf{\hat{D}}^{-1/2} \mathbf{\hat{A}} \mathbf{\hat{D}}^{-1/2} \right)}^k \mathbf{X}+ \alpha \mathbf{X}\right)$$ on first execution, and will use the cached version for further executions. This parameter should only be set to True in transductive learning scenarios. (default: False)

• add_self_loops (bool, optional) – If set to False, will not add self-loops to the input graph. (default: True)

• bias (bool, optional) – If set to False, the layer will not learn an additive bias. (default: True)

• **kwargs (optional) – Additional arguments of torch_geometric.nn.conv.MessagePassing.

Shapes:
• input: node features $$(|\mathcal{V}|, F_{in})$$, edge indices $$(2, |\mathcal{E}|)$$, edge weights $$(|\mathcal{E}|)$$ (optional)

• output: node features $$(|\mathcal{V}|, F_{out})$$

forward(x: Tensor, edge_index: Union[Tensor, SparseTensor], edge_weight: = None) [source]

Runs the forward pass of the module.

reset_parameters()[source]

Resets all learnable parameters of the module.