-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun-twocastle.py
58 lines (52 loc) · 1.13 KB
/
run-twocastle.py
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
52
53
54
55
56
57
58
import os
graph = 'TwoCastle'
attacks = [
'none',
'sign_flipping',
'gaussian',
'isolation',
'sample_duplicate',
]
aggregations = [
'mean',
'ios',
'trimmed-mean',
'median',
'geometric-median',
'faba',
'Krum',
'cc',
'scc',
]
partitions = [
'iid',
'noniid',
]
action = os.system
# action = print
# no communication
for partition in partitions:
cmd = f'python "main DSGD.py" ' \
+ f'--graph {graph} ' \
+ f'--aggregation no-comm ' \
+ f'--attack none ' \
+ f'--data-partition {partition} '
action(cmd)
# DSGD
for partition in partitions:
for aggregation in aggregations:
for attack in attacks:
cmd = f'python "main DSGD.py" ' \
+ f'--graph {graph} ' \
+ f'--aggregation {aggregation} ' \
+ f'--attack {attack} ' \
+ f'--data-partition {partition} '
action(cmd)
# DRSA
for partition in partitions:
for attack in attacks:
cmd = f'python "main RSA.py" ' \
+ f'--graph {graph} ' \
+ f'--attack {attack} ' \
+ f'--data-partition {partition} '
action(cmd)