
=== Start adding workers ===
=> Add worker SGDMWorker(index=0, momentum=0.9)
=> Add worker SGDMWorker(index=1, momentum=0.9)
=> Add worker SGDMWorker(index=2, momentum=0.9)
=> Add worker SGDMWorker(index=3, momentum=0.9)
=> Add worker SGDMWorker(index=4, momentum=0.9)
=> Add worker SGDMWorker(index=5, momentum=0.9)
=> Add worker SGDMWorker(index=6, momentum=0.9)
=> Add worker SGDMWorker(index=7, momentum=0.9)
=> Add worker SGDMWorker(index=8, momentum=0.9)
=> Add worker SGDMWorker(index=9, momentum=0.9)
=> Add worker SGDMWorker(index=10, momentum=0.9)
=> Add worker BitFlippingWorker

=== Start adding graph ===
TwoCliquesWithByzantine(m=5,b=1)

Train epoch 1
[E 1B0  |    384/60000 (  1%) ] Loss: 2.3142 top1=  7.6705

=== Peeking data label distribution E1B0 ===
Worker 0 has targets: tensor([0, 0, 0, 0, 0], device='cuda:0')
Worker 1 has targets: tensor([1, 1, 1, 0, 1], device='cuda:0')
Worker 2 has targets: tensor([1, 1, 2, 1, 1], device='cuda:0')
Worker 3 has targets: tensor([2, 2, 3, 2, 2], device='cuda:0')
Worker 4 has targets: tensor([3, 3, 3, 3, 3], device='cuda:0')
Worker 5 has targets: tensor([4, 4, 4, 4, 4], device='cuda:0')
Worker 6 has targets: tensor([5, 5, 5, 5, 5], device='cuda:0')
Worker 7 has targets: tensor([6, 6, 6, 5, 6], device='cuda:0')
Worker 8 has targets: tensor([6, 7, 7, 6, 6], device='cuda:0')
Worker 9 has targets: tensor([7, 7, 8, 7, 7], device='cuda:0')
Worker 10 has targets: tensor([8, 8, 9, 8, 8], device='cuda:0')
Worker 11 has targets: tensor([9, 9, 9, 9, 9], device='cuda:0')



=== Log global consensus distance @ E1B0 ===
consensus_distance=0.001



=== Log clique consensus distance @ E1B0 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=0.002



=== Log mixing matrix @ E1B0 ===
[[0.167 0.167 0.167 0.167 0.167 0.    0.    0.    0.    0.    0.167 0.   ]
 [0.167 0.233 0.2   0.2   0.2   0.    0.    0.    0.    0.    0.    0.   ]
 [0.167 0.2   0.233 0.2   0.2   0.    0.    0.    0.    0.    0.    0.   ]
 [0.167 0.2   0.2   0.233 0.2   0.    0.    0.    0.    0.    0.    0.   ]
 [0.167 0.2   0.2   0.2   0.233 0.    0.    0.    0.    0.    0.    0.   ]
 [0.    0.    0.    0.    0.    0.233 0.2   0.2   0.2   0.167 0.    0.   ]
 [0.    0.    0.    0.    0.    0.2   0.233 0.2   0.2   0.167 0.    0.   ]
 [0.    0.    0.    0.    0.    0.2   0.2   0.233 0.2   0.167 0.    0.   ]
 [0.    0.    0.    0.    0.    0.2   0.2   0.2   0.233 0.167 0.    0.   ]
 [0.    0.    0.    0.    0.    0.167 0.167 0.167 0.167 0.167 0.167 0.   ]
 [0.167 0.    0.    0.    0.    0.    0.    0.    0.    0.167 0.417 0.25 ]
 [0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.25  0.75 ]]


[E 1B10 |   4224/60000 (  7%) ] Loss: 0.9628 top1= 63.6364

=== Log global consensus distance @ E1B10 ===
consensus_distance=0.421



=== Log clique consensus distance @ E1B10 ===
clique1_consensus_distance=0.002
clique2_consensus_distance=1.681


[E 1B20 |   8064/60000 ( 13%) ] Loss: 0.4463 top1= 86.9318

=== Log global consensus distance @ E1B20 ===
consensus_distance=0.993



=== Log clique consensus distance @ E1B20 ===
clique1_consensus_distance=0.001
clique2_consensus_distance=4.116



=> Averaged model (Global Average Validation Accuracy) | Eval Loss=1.1454 top1= 64.0224


=> Averaged model (Clique1 Average Validation Accuracy) | Eval Loss=6.2691 top1= 39.9239


=> Averaged model (Clique2 Average Validation Accuracy) | Eval Loss=6.4114 top1= 39.4732

Train epoch 2
[E 2B0  |    384/60000 (  1%) ] Loss: 0.2316 top1= 92.3295

=== Log global consensus distance @ E2B0 ===
consensus_distance=1.186



=== Log clique consensus distance @ E2B0 ===
clique1_consensus_distance=0.001
clique2_consensus_distance=4.977


[E 2B10 |   4224/60000 (  7%) ] Loss: 0.2709 top1= 91.7614

=== Log global consensus distance @ E2B10 ===
consensus_distance=1.243



=== Log clique consensus distance @ E2B10 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.226


[E 2B20 |   8064/60000 ( 13%) ] Loss: 0.1950 top1= 95.4545

=== Log global consensus distance @ E2B20 ===
consensus_distance=1.277



=== Log clique consensus distance @ E2B20 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.372



=> Averaged model (Global Average Validation Accuracy) | Eval Loss=0.8993 top1= 73.7079


=> Averaged model (Clique1 Average Validation Accuracy) | Eval Loss=4.0027 top1= 40.2444


=> Averaged model (Clique2 Average Validation Accuracy) | Eval Loss=4.8246 top1= 42.1374

Train epoch 3
[E 3B0  |    384/60000 (  1%) ] Loss: 0.1397 top1= 95.7386

=== Log global consensus distance @ E3B0 ===
consensus_distance=1.311



=== Log clique consensus distance @ E3B0 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.534


[E 3B10 |   4224/60000 (  7%) ] Loss: 0.1280 top1= 96.3068

=== Log global consensus distance @ E3B10 ===
consensus_distance=1.348



=== Log clique consensus distance @ E3B10 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.671


[E 3B20 |   8064/60000 ( 13%) ] Loss: 0.1366 top1= 96.3068

=== Log global consensus distance @ E3B20 ===
consensus_distance=1.358



=== Log clique consensus distance @ E3B20 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.729



=> Averaged model (Global Average Validation Accuracy) | Eval Loss=0.8269 top1= 75.5208


=> Averaged model (Clique1 Average Validation Accuracy) | Eval Loss=3.7324 top1= 42.8586


=> Averaged model (Clique2 Average Validation Accuracy) | Eval Loss=4.6808 top1= 45.3125

Train epoch 4
[E 4B0  |    384/60000 (  1%) ] Loss: 0.0926 top1= 96.8750

=== Log global consensus distance @ E4B0 ===
consensus_distance=1.350



=== Log clique consensus distance @ E4B0 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.711


[E 4B10 |   4224/60000 (  7%) ] Loss: 0.0806 top1= 97.7273

=== Log global consensus distance @ E4B10 ===
consensus_distance=1.339



=== Log clique consensus distance @ E4B10 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.662


[E 4B20 |   8064/60000 ( 13%) ] Loss: 0.0986 top1= 97.4432

=== Log global consensus distance @ E4B20 ===
consensus_distance=1.335



=== Log clique consensus distance @ E4B20 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.644



=> Averaged model (Global Average Validation Accuracy) | Eval Loss=0.8028 top1= 76.6727


=> Averaged model (Clique1 Average Validation Accuracy) | Eval Loss=4.0164 top1= 44.3610


=> Averaged model (Clique2 Average Validation Accuracy) | Eval Loss=4.8680 top1= 45.8834

Train epoch 5
[E 5B0  |    384/60000 (  1%) ] Loss: 0.0616 top1= 98.2955

=== Log global consensus distance @ E5B0 ===
consensus_distance=1.322



=== Log clique consensus distance @ E5B0 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.597


[E 5B10 |   4224/60000 (  7%) ] Loss: 0.0574 top1= 98.5795

=== Log global consensus distance @ E5B10 ===
consensus_distance=1.305



=== Log clique consensus distance @ E5B10 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.520


[E 5B20 |   8064/60000 ( 13%) ] Loss: 0.0621 top1= 98.2955

=== Log global consensus distance @ E5B20 ===
consensus_distance=1.286



=== Log clique consensus distance @ E5B20 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.441



=> Averaged model (Global Average Validation Accuracy) | Eval Loss=0.7523 top1= 78.0749


=> Averaged model (Clique1 Average Validation Accuracy) | Eval Loss=4.1114 top1= 46.0136


=> Averaged model (Clique2 Average Validation Accuracy) | Eval Loss=5.1179 top1= 45.8333

Train epoch 6
[E 6B0  |    384/60000 (  1%) ] Loss: 0.0414 top1= 99.4318

=== Log global consensus distance @ E6B0 ===
consensus_distance=1.273



=== Log clique consensus distance @ E6B0 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.390


[E 6B10 |   4224/60000 (  7%) ] Loss: 0.0409 top1= 99.4318

=== Log global consensus distance @ E6B10 ===
consensus_distance=1.253



=== Log clique consensus distance @ E6B10 ===
clique1_consensus_distance=0.000
clique2_consensus_distance=5.301


