Research repository for EUSIPCO 2026 submission: Adaptive Geometric-Arithmetic-Harmonic (GAH) mean for SPD neural networks
This is a private paper repository for the second research phase focusing on the adaptive GAH method with simulation component.
This repository contains:
- Adaptive GAH callback: Custom PyTorch Lightning callback to track the learnable parameter evolution during training
- Simulation module: Complete simulation framework for studying BatchNorm mean type impact on SPD classification
- Experiment scripts: Shell scripts for running adaptive GAH experiments on various datasets
- Evaluation tools: Scripts for aggregating and analyzing experimental results
The repository is organized to separate concerns:
- Data generation is provided by
spdnet-datasets(synthetic data generation) - Training framework is provided by
spdnet-training(main training loop, callbacks, utilities) - This repository contains paper-specific components:
- Adaptive GAH parameter logger
- Simulation training/testing logic
- Paper-specific experiment configurations
- Result aggregation and analysis scripts
This repository depends on three core modules that are installed automatically from GitHub:
| Module | Role |
|---|---|
| yetanotherspdnet | SPD layers (BiMap, ReEig, LogEig, BatchNorm) |
| spdnet-datasets | Dataset loaders, synthetic data generators |
| spdnet-training | Lightning module, training loop, callbacks |
# Clone the repository
git clone https://github.com/Yet-Another-Research-Organisation/eusipco_2026.git
cd eusipco_2026
# Create virtual environment (Python >= 3.11 required)
uv venv .venv --python 3.11
source .venv/bin/activate
# Install in development mode (fetches core modules automatically)
uv pip install -e ".[dev]"
# Set up environment variables
cp .env.example .env
# Edit .env to set DATA_ROOT to your dataset locationAll three core modules are fetched and installed automatically during pip install. No manual cloning required.
# Quick test
python -m eusipco_2026.simulation --quick --cpu
# Full Wishart/Inverse-Wishart experiments
python -m eusipco_2026.simulation --wishart-inverse --n-jobs 24 --output-dir results/wishart
# Custom configuration
python -m eusipco_2026.simulation --custom --matrix-size 16 --n-discriminant 2 --seeds 42 123 456# HDM05 dataset
./scripts/adaptive_gah_experiment_hdm05.sh
# HyperLeaf dataset
./scripts/08_adaptative/adaptive_gah_experiment_hyperleaf.sh
# RICE S90 dataset
./scripts/08_adaptative/adaptive_gah_experiment_rices90.sh# Aggregate results from multiple runs
python -m eusipco_2026.evaluate.aggregate_experiment_results \
--results-dir results \
--group spdnet_hdm05 \
--name ADAPTIVE_GAH_HDM05
# Extract and generate LaTeX tables
python -m eusipco_2026.evaluate.extract_results results/spdnet_hdm05 -o tables/hdm05_results.texCore dependencies:
spdnet-training: Training framework and utilitiesspdnet-datasets: Dataset loaders and synthetic data generationyetanotherspdnet: SPD neural network layers and operations- PyTorch Lightning: Training framework
- Hydra: Configuration management
eusipco_2026/
├── src/eusipco_2026/
│ ├── callbacks/ # Adaptive GAH parameter logger
│ ├── simulation/ # Simulation training/testing logic
│ ├── evaluate/ # Result aggregation and analysis
│ └── train.py # Training entry point
├── scripts/ # Experiment shell scripts
├── configs/ # Hydra configuration files
└── tests/ # Unit tests
If you use this code in your research, please cite:
@inproceedings{gallet2026adaptive,
title={Adaptive Geometric-Arithmetic-Harmonic Mean for SPD Neural Networks},
author={Gallet, Matthieu and Mian, Ammar},
booktitle={European Signal Processing Conference (EUSIPCO)},
year={2026}
}MIT License - see LICENSE file for details.
- Matthieu Gallet
- Ammar Mian (ammar.mian@univ-smb.fr)