Skip to main content

MessagePassingLayer

Trait MessagePassingLayer 

Source
pub trait MessagePassingLayer {
    // Required methods
    fn aggregate(
        &self,
        node_features: &[Vec<f64>],
        adjacency: &[(usize, usize, f64)],
        n_nodes: usize,
    ) -> Result<Vec<Vec<f64>>>;
    fn update(
        &self,
        aggregated: &[Vec<f64>],
        node_features: &[Vec<f64>],
    ) -> Result<Vec<Vec<f64>>>;

    // Provided method
    fn forward(
        &self,
        node_features: &[Vec<f64>],
        adjacency: &[(usize, usize, f64)],
    ) -> Result<Vec<Vec<f64>>> { ... }
}
Expand description

Core trait for GNN layers following the message-passing paradigm

Implementors must provide aggregate (neighbourhood → message) and update (message + self → new embedding) methods.

Required Methods§

Source

fn aggregate( &self, node_features: &[Vec<f64>], adjacency: &[(usize, usize, f64)], n_nodes: usize, ) -> Result<Vec<Vec<f64>>>

Aggregate messages from the neighborhood of each node

Source

fn update( &self, aggregated: &[Vec<f64>], node_features: &[Vec<f64>], ) -> Result<Vec<Vec<f64>>>

Update node embeddings using aggregated messages and self-features

Provided Methods§

Source

fn forward( &self, node_features: &[Vec<f64>], adjacency: &[(usize, usize, f64)], ) -> Result<Vec<Vec<f64>>>

Run one full forward pass: aggregate + update

Implementors§