propago
Graph learning primitives built on candle tensors.
This repo focuses on a small set of reusable building blocks (layers + small loops), not a full training framework.
Quickstart
[]
= "0.1"
= "0.9"
= "0.9"
Hyperbolic distance on the Poincaré ball (Tensor-native):
use ;
use CandlePoincareBall;
let dev = &Cpu;
let x = from_vec?;
let y = from_vec?;
let ball = new;
let d = ball.distance?.?;
assert!;
# Ok::
Status / scope
- Keep interfaces small so higher-level graph stacks can integrate without tight coupling.
HGCNConvuses a Tensor-native Poincaré ball implementation (CandlePoincareBall) so it can run on Candle backends (CPU/GPU).
API surface
propago::GCNConv: simple graph convolution (linear projection + adjacency matmul).propago::HGCNConv: hyperbolic graph convolution on the Poincaré ball.
Notes:
- Many ops assume inputs are shaped
[batch, d](row-major feature vectors).
Backends
- Candle (default):
--features backend-candle(enabled by default). - Burn (opt-in):
--features backend-burnexposes Burn-tensor Poincaré ops. - MLX (opt-in):
--features backend-mlxbuildsmlx-rsand requirescmake+ Xcode MetalToolchain; tests force CPU for determinism.
License
MIT OR Apache-2.0