{"adoption": {"forks": 461, "observed_at": "2026-08-28T04:04:43.802291+00:00", "stars": 1437}, "canonical_url": "https://ross.abutalabs.com/products/federated-learning-pytorch", "card": {"archived": false, "artifact_type": "library", "description": "Implementation of Communication-Efficient Learning of Deep Networks from Decentralized Data", "domain": ["machine-learning", "deep-learning", "microservices", "developer-tools"], "enriched": true, "function": ["machine-learning", "deep-learning"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["AshwinRJ/Federated-Learning-PyTorch"], "name": "AshwinRJ/Federated-Learning-PyTorch", "platform": ["python", "cross-platform"], "pushed_at": "2024-05-07T14:34:34+00:00", "repo": "AshwinRJ/Federated-Learning-PyTorch", "stars": 1437, "tags": ["federated-learning", "pytorch", "research-code", "fedavg", "non-iid", "mnist", "cifar", "gpu"], "topics": ["federated-learning", "distributed-computing", "deep-learning", "pytorch", "python"], "urls": [], "use_cases": ["reproduce the FedAvg federated learning paper", "simulate federated learning with IID and non-IID data splits", "train a global model across many simulated local clients", "experiment with different numbers of users and local epochs in federated training", "learn how federated averaging works in PyTorch", "benchmark federated vs centralized training on MNIST and CIFAR"], "what_it_is": "A PyTorch implementation of the FedAvg algorithm from the paper 'Communication-Efficient Learning of Deep Networks from Decentralized Data'. It provides baseline and federated training scripts for simple MLP and CNN models on MNIST, Fashion MNIST, and CIFAR10 under IID and non-IID data distributions.", "when_to_avoid": ["you need production federated learning with real distributed clients and secure aggregation", "you require large-scale models, differential privacy, or communication compression", "you need actively maintained code with broad dataset and model support"], "when_to_choose": ["you want a minimal, readable reference implementation of FedAvg", "you need to run quick federated learning experiments on small image datasets", "you are teaching or learning the basics of federated learning"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/federated-learning-pytorch", "repo": "AshwinRJ/Federated-Learning-PyTorch", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.802291+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:36:42.504834+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c0bfc58f417ce6387df093efc42020d9beb4492af0fe7b88cf86bd6f8dfa9952", "fetched_at": "2026-08-28T04:04:43.802291+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AshwinRJ/Federated-Learning-PyTorch"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2847, "days_push": 848, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}