GNN(in_dim, hid_dim, gnn_type='gcn', num_layers=3, base_model=None, act=F.relu, **kwargs)

Bases: Module

Generic Graph Neural Network module with support for different GNN types and weight sharing.

Parameters:
  • in_dim (int) –

    Input feature dimensionality

  • hid_dim (int) –

    Hidden feature dimensionality

  • gnn_type (str, default: 'gcn' ) –

    Type of GNN layer ('gcn' or 'ppmi'). Default: 'gcn'

  • num_layers (int, default: 3 ) –

    Number of GNN layers. Default: 3

  • base_model (GNN, default: None ) –

    Base model to share weights with. Default: None

  • act (callable, default: relu ) –

    Activation function. Default: F.relu

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

    Additional arguments for GNN layers

Notes
  • Flexible GNN architecture
  • Optional weight sharing
  • Configurable depth and width
  • Multiple GNN type support
forward(x, edge_index, cache_name)

Forward pass through the GNN.

Parameters:
  • x (Tensor) –

    Node feature matrix [num_nodes, in_dim]

  • edge_index (Tensor) –

    Graph connectivity [2, num_edges]

  • cache_name (str) –

    Identifier for caching computations

Returns:
  • Tensor

    Node embeddings [num_nodes, hid_dim]

Notes
  • Sequential layer processing
  • Intermediate activations
  • Dropout regularization
  • Cache-aware computation
UDAGCNBase(in_dim, hid_dim, num_classes, num_layers=3, dropout=0.1, act=F.relu, ppmi=True, adv_dim=40, **kwargs)

Bases: Module

Base class for UDAGCN.

Parameters:
  • in_dim (int) –

    Input dimension of model.

  • hid_dim (int) –

    Hidden dimension of model.

  • num_classes (int) –

    Number of classes.

  • num_layers (int, default: 3 ) –

    Total number of layers in model. Default: 4.

  • dropout (float, default: 0.1 ) –

    Dropout rate. Default: 0..

  • act (callable activation function or None, default: relu ) –

    Activation function if not None. Default: torch.nn.functional.relu.

  • ppmi

    Use PPMI matrix or not. Default: True.

  • adv_dim (int, default: 40 ) –

    Hidden dimension of adversarial module. Default: 40.

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

    Other parameters for the backbone.

Notes

Architecture Components:

  • GCN encoder
  • Optional PPMI encoder
  • Classification head
  • Domain discriminator
  • Attention fusion

Features:

  • Multi-view learning
  • Adversarial domain adaptation
  • Attention-based feature fusion
  • Cache-aware computation
encode(data, cache_name, mask=None)

Encode graph data using both GCN and optional PPMI encoders.

Parameters:
  • data (Data) –

    Input graph data

  • cache_name (str) –

    Identifier for caching computations

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    Fused node embeddings [num_nodes, hid_dim]

Notes
  • Multi-view encoding
  • Attention-based fusion
  • Optional node masking
  • Cache-aware computation
gcn_encode(data, cache_name, mask=None)

Encode graph data using GCN encoder.

Parameters:
  • data (Data) –

    Input graph data

  • cache_name (str) –

    Identifier for caching computations

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    GCN node embeddings [num_nodes, hid_dim]

Notes
  • Standard GCN encoding
  • Optional node masking
  • Cache-aware computation
ppmi_encode(data, cache_name, mask=None)

Encode graph data using PPMI encoder.

Parameters:
  • data (Data) –

    Input graph data

  • cache_name (str) –

    Identifier for caching computations

  • mask (Tensor, default: None ) –

    Boolean mask for node selection. Default: None

Returns:
  • Tensor

    PPMI node embeddings [num_nodes, hid_dim]

Notes
  • PPMI-based encoding
  • Optional node masking
  • Cache-aware computation