Welcome to OpenFGL’s documentation!
OpenFGL is a benchmark for Federated Graph Learning. It provides a fair and comprehensive platform to evaluate existing FGL works and facilitate future FGL research.
Note
This project is under active development.
Citation
Please cite our paper (and the respective papers of the methods used) if you use this code in your own work:
@misc{li2024openfglcomprehensivebenchmarksfederated,
title={OpenFGL: A Comprehensive Benchmarks for Federated Graph Learning},
author={Xunkai Li and Yinlin Zhu and Boyang Pang and Guochen Yan and Yeyu Yan and Zening Li and Zhengyu Wu and Wentao Zhang and Rong-Hua Li and Guoren Wang},
year={2024},
eprint={2408.16288},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2408.16288},
}
Installation
pip install openfgl-lib==1.0.2
Getting Started
Modules
- Client
- Server
- Task
BaseTaskGraphClsTaskGraphClsTask.default_loss_fnGraphClsTask.default_modelGraphClsTask.default_optimGraphClsTask.default_train_val_test_splitGraphClsTask.evaluate()GraphClsTask.load_train_val_test_split()GraphClsTask.local_graph_train_val_test_split()GraphClsTask.loss_fn()GraphClsTask.num_featsGraphClsTask.num_global_classesGraphClsTask.num_samplesGraphClsTask.train()GraphClsTask.train_val_test_path
LinkPredTaskLinkPredTask.default_loss_fnLinkPredTask.default_modelLinkPredTask.default_optimLinkPredTask.default_train_val_test_splitLinkPredTask.evaluate()LinkPredTask.load_train_val_test_split()LinkPredTask.local_subgraph_train_val_test_split()LinkPredTask.loss_fn()LinkPredTask.num_featsLinkPredTask.num_global_classesLinkPredTask.num_samplesLinkPredTask.train()LinkPredTask.train_val_test_path
NodeClsTaskNodeClsTask.default_loss_fnNodeClsTask.default_modelNodeClsTask.default_optimNodeClsTask.default_train_val_test_splitNodeClsTask.evaluate()NodeClsTask.load_train_val_test_split()NodeClsTask.local_subgraph_train_val_test_split()NodeClsTask.loss_fn()NodeClsTask.num_featsNodeClsTask.num_global_classesNodeClsTask.num_samplesNodeClsTask.train()NodeClsTask.train_val_test_path
NodeClustTaskNodeClustTask.default_loss_fnNodeClustTask.default_modelNodeClustTask.default_optimNodeClustTask.default_train_val_test_splitNodeClustTask.evaluate()NodeClustTask.load_train_val_test_split()NodeClustTask.loss_fn()NodeClustTask.num_featsNodeClustTask.num_global_classesNodeClustTask.num_samplesNodeClustTask.train()NodeClustTask.train_val_test_path