{"id":18800560,"url":"https://github.com/xtra-computing/fedgma","last_synced_at":"2026-01-03T21:30:15.894Z","repository":{"id":184770994,"uuid":"672450633","full_name":"Xtra-Computing/FedGMA","owner":"Xtra-Computing","description":"Communication-Efficient Generalized Neuron Matching for Federated Learning (ICPP'23)","archived":false,"fork":false,"pushed_at":"2023-07-30T06:07:00.000Z","size":258,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-12-29T19:05:52.270Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xtra-Computing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-30T06:01:47.000Z","updated_at":"2023-10-24T06:53:56.000Z","dependencies_parsed_at":"2023-07-30T07:34:32.086Z","dependency_job_id":null,"html_url":"https://github.com/Xtra-Computing/FedGMA","commit_stats":null,"previous_names":["xtra-computing/fedgma"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FFedGMA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FFedGMA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FFedGMA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xtra-Computing%2FFedGMA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xtra-Computing","download_url":"https://codeload.github.com/Xtra-Computing/FedGMA/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239734440,"owners_count":19688255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T22:19:07.830Z","updated_at":"2026-01-03T21:30:15.831Z","avatar_url":"https://github.com/Xtra-Computing.png","language":"Python","readme":"# FedGMA\n\nThis is the code of paper [Communication-Efficient Generalized Neuron Matching for Federated Learning](https://doi.org/10.1145/3605573.3605726)\n\n## Requirements\n\nSystem requirements:\n\n* Openssh client \u0026 server\n* Cmake \u0026 build essentials\n* CUDA runtime \u003e= 11.2\n* Tmux \u003e=3.2a\n\nPython requirements:\n\n* Python == 3.9\n* Install all requirements with `pip install -r requirements.txt`.\n\n## Usage\n\nFirst edit `workers.txt` to configure the GPU resource allocation. Each line should have the format of `\u003cserver|client\u003e localhost \u003cN\u003e`. `\u003cN\u003e` specifies the GPU index (starting from 0). The first line must be `server localhost \u003cN\u003e`, and the remaining lines must start with `client`. The total number of `client` lines must be greater than the total number of clients to start.\n\nThis is an example to run the code:\n\n```bash\npython -um code.launcher.client_server \\\n    +a fedavg +n 8 +sa -md.n unordered-resnet18 \\\n    -dt.r.d cifar10 -fl.bt model -fedavg.eslr 0.04 \\\n    -tr.bs 128 -tr.s.n reduceonplateau \\\n    -tr.o.sgd.wghtdcy 5e-4 -tr.e 10000 -tr.lr 0.05\n```\n\nThis command starts a tmux session that manages all the processes of the experiment. To query all the available hyperparameters, run:\n\n```bash\npython -um code.launcher.node.node -l.a \u003calgorithm\u003e.server -h\n```\n\nwhere `\u003calgorithm\u003e` is the algorithm to run (i.e. `fedavg|fednova|fedgma`). The datasets will be downloaded if they are not already present after the experiment starts.\n\nThe processes are managed by tmux. Use `tmux attach` to attach to the tmux session and observe the progress of the experiment. Experiment logs will also be outputted to `logs/\u003cdate_time\u003e`.\n\n\n## Results\n\n### Accuracies on CIFAR-10/100\n\n\n| \u003cimg src=\"res/acc_cifar10.png\" width=\"230\"/\u003e | \u003cimg src=\"res/acc_cifar100.png\" width=\"230\"/\u003e |\n|:--------------------------------------------:|:---------------------------------------------:|\n| CIFAR10                                      | CIFAR100                                       |\n\n### Accuracy -- Data Curve on CIFAR10\n|\u003cimg src=\"res/vgg.png\" width=\"230\"/\u003e|\u003cimg src=\"res/resnet.png\" width=\"230\"/\u003e|\u003cimg src=\"res/inception.png\" width=\"230\"/\u003e|\n|:----------------------------------:|:-------------------------------------:|:----------------------------------------:|\n| VGG9                               | ResNet18                              | InceptionNet3                            |\n\n\n## Citation\n\nTBD\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtra-computing%2Ffedgma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtra-computing%2Ffedgma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtra-computing%2Ffedgma/lists"}