-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
51 lines (43 loc) · 1.23 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "bft-federated-learning"
version = "1.0.0"
description = "Federated Learning with Byzantine Fault Tolerance (BFT)"
license = "Apache-2.0"
dependencies = [
"flwr[simulation]>=1.12.0",
"flwr-datasets[vision]>=0.3.0",
"torch==2.2.1",
"torchvision==0.17.1",
"wandb==0.18.7",
"matplotlib",
"numpy",
"pandas",
"scipy",
]
[tool.hatch.build.targets.wheel]
packages = ["."]
[tool.flwr.app]
publisher = "muticia"
[tool.flwr.app.components]
serverapp = "app.server_app:app"
clientapp = "app.client_app:app"
[tool.flwr.federations]
default = "local-simulation"
[tool.flwr.app.config]
num-server-rounds = 20
fraction-fit = 1.0
local-epochs = 3
batch-size = 32
pretrained-model-path = "results/model/cifar10_cnn_model_weights.pth"
# BFT Strategy Configuration
strategy-type = "fedavg" # fedavg, krum, trimmed_mean
byzantine-clients = 0
randomize-byzantine-strategy = false
byzantine-attack-strategy = "zero_update" # sign_flip, gaussian_noise, constant_bias, zero_update
byzantine-attack-intensity = 1.0 # 0.1, 0.5, 1.0 (10 for constant_value)
[tool.flwr.federations.local-simulation]
options.num-supernodes = 100
options.seed = 42