SPD Learn: A Geometric Deep Learning Python Library for Neural Decoding Through Trivialization
This library addresses the problem of fragmented and irreproducible implementations of SPD-based neural networks for researchers and developers in neural decoding and brain-computer interfaces.
The authors developed SPD Learn, a Python library for geometric deep learning with symmetric positive definite (SPD) matrices, to unify fragmented implementations of SPD matrix-based neural networks for neural decoding. This library provides core SPD operators and neural network layers, enforcing Stiefel/SPD constraints through trivialization-based parameterizations.
Implementations of symmetric positive definite (SPD) matrix-based neural networks for neural decoding remain fragmented across research codebases and Python packages. Existing implementations often employ ad hoc handling of manifold constraints and non-unified training setups, which hinders reproducibility and integration into modern deep-learning workflows. To address this gap, we introduce SPD Learn, a unified and modular Python package for geometric deep learning with SPD matrices. SPD Learn provides core SPD operators and neural-network layers, including numerically stable spectral operators, and enforces Stiefel/SPD constraints via trivialization-based parameterizations. This design enables standard backpropagation and optimization in unconstrained Euclidean spaces while producing manifold-constrained parameters by construction. The package also offers reference implementations of representative SPDNet-based models and interfaces with widely used brain computer interface/neuroimaging toolkits and modern machine-learning libraries (e.g., MOABB, Braindecode, Nilearn, and SKADA), facilitating reproducible benchmarking and practical deployment.