PropGCNConv(in_channels, out_channels, improved=False, cached=False, add_self_loops=True, normalize=True, bias=True, **kwargs)

Bases: MessagePassing

Propagation Graph Convolutional Network layer with multiple propagation steps.

Parameters:
  • in_channels (int) –

    Size of input features

  • out_channels (int) –

    Size of output features

  • improved (bool, default: False ) –

    If True, use A + 2I instead of A + I. Default: False

  • cached (bool, default: False ) –

    Whether to cache normalized adjacency matrix. Default: False

  • add_self_loops (bool, default: True ) –

    Whether to add self-loops. Default: True

  • normalize (bool, default: True ) –

    Whether to apply symmetric normalization. Default: True

  • bias (bool, default: True ) –

    Whether to include bias. Default: True

  • **kwargs (optional, default: {} ) –

    Additional MessagePassing arguments

Notes
  • Multiple propagation steps
  • Cached normalization
  • Sparse tensor support
  • Configurable self-loops
forward(x, edge_index, prop_nums=1, edge_weight=None)

Forward pass with multiple propagation steps.

Parameters:
  • x (Tensor) –

    Node feature matrix

  • edge_index (Tensor or SparseTensor) –

    Edge indices or sparse adjacency matrix

  • prop_nums (int, default: 1 ) –

    Number of propagation steps. Default: 1

  • edge_weight (Tensor, default: None ) –

    Edge weights. Default: None

Returns:
  • Tensor

    Output node features

Notes
  • Graph normalization (if enabled)
  • Linear transformation
  • Multiple propagation steps
  • Optional bias addition
message(x_j, edge_weight)

Define message computation.

Parameters:
  • x_j (Tensor) –

    Source node features

  • edge_weight (Tensor) –

    Edge weights

Returns:
  • Tensor

    Computed messages

Notes

Applies edge weights if provided, otherwise passes features directly

message_and_aggregate(adj_t, x)

Fused message and aggregation computation.

Parameters:
  • adj_t (SparseTensor) –

    Sparse adjacency matrix

  • x (Tensor) –

    Node features

Returns:
  • Tensor

    Aggregated messages

Notes

Optimized sparse matrix multiplication for efficiency

gcn_norm(edge_index, edge_weight=None, num_nodes=None, improved=False, add_self_loops=True, dtype=None)

Compute symmetric normalization for graph convolution.

Parameters:
  • edge_index (Tensor or SparseTensor) –

    Edge indices or sparse adjacency matrix

  • edge_weight (Tensor, default: None ) –

    Edge weights. Default: None

  • num_nodes (int, default: None ) –

    Number of nodes. Default: None

  • improved (bool, default: False ) –

    If True, use A + 2I instead of A + I. Default: False

  • add_self_loops (bool, default: True ) –

    Whether to add self-loops. Default: True

  • dtype (dtype, default: None ) –

    Data type for computations. Default: None

Returns:
  • tuple[Tensor, Tensor] or SparseTensor

    Normalized edge indices and weights, or normalized sparse tensor