Ziqi Wang, Qiang Liu, and Nils Thuerey
This repository implements CRAFT, a federated learning framework designed for robust global aggregation under heterogeneous client data distributions. The current training pipeline supports CRAFT as the server-side aggregation algorithm and integrates configurable client sampling, local training, data partitioning, evaluation, and result logging. For more details, please refer to our paper.
.
├── main_train.py # Training entry point
├── fed/
│ ├── craft.py # CRAFT aggregation
│ ├── server.py # Federated server
│ ├── client.py # Federated client
│ ├── federate.py # Federated training loop
│ ├── dataset.py # Dataset loading and partitioning
│ └── nets.py # Model definitions
├── utils/
│ ├── args.py # CLI argument parsing
│ ├── config.yaml # Experiment configuration
│ └── utils.py # Shared utilities
├── dataset/ # Dataset files and assets
├── results/ # Result analysis utilities
Run a single CRAFT experiment using the YAML configuration:
python main_train.py --cfg utils/config.yamlIf this code is useful for your research, please cite the paper:
@article{wang2026CRAFT,
author={Ziqi Wang and Qiang Liu and Nils Thuerey},
title={CRAFT: Conflict-Resolved Aggregation for Federated Training},
eprint={2605.21317},
archivePrefix={arXiv},
url={https://arxiv.org/abs/2605.21317},
}Funded by the European Union's Horizon Europe MSCA project ModConFlex (grant number 101073558)


