Implement MNIST Image Classification via Federated Learning (FedAV) in java pure
#note: Before run code unzip data.zip file
Sample Output
=== Round 1/50 ===
Class-wise Accuracy:
Class 0: 99.08% (971/980)
Class 1: 98.68% (1120/1135)
Class 2: 90.89% (938/1032)
Class 3: 85.05% (859/1010)
Class 4: 97.86% (961/982)
Class 5: 80.38% (717/892)
Class 6: 82.36% (789/958)
Class 7: 82.77% (850/1027)
Class 8: 87.37% (851/974)
Class 9: 51.54% (520/1009)
Test Accuracy: 0.8576857685768576
=== Round 2/50 ===
Class-wise Accuracy:
Class 0: 99.29% (973/980)
Class 1: 99.56% (1130/1135)
Class 2: 84.50% (872/1032)
Class 3: 94.06% (950/1010)
Class 4: 97.86% (961/982)
Class 5: 80.61% (719/892)
Class 6: 83.72% (802/958)
Class 7: 78.58% (807/1027)
Class 8: 82.85% (807/974)
Class 9: 62.34% (629/1009)
Test Accuracy: 0.8650865086508651
=== Round 3/50 ===
Class-wise Accuracy:
Class 0: 98.98% (970/980)
Class 1: 99.65% (1131/1135)
Class 2: 88.08% (909/1032)
Class 3: 95.54% (965/1010)
Class 4: 97.96% (962/982)
Class 5: 83.30% (743/892)
Class 6: 87.79% (841/958)
Class 7: 82.28% (845/1027)
Class 8: 86.96% (847/974)
Class 9: 72.35% (730/1009)
Test Accuracy: 0.8943894389438944
=== Round 4/50 ===
Class-wise Accuracy:
Class 0: 99.29% (973/980)
Class 1: 99.47% (1129/1135)
Class 2: 88.37% (912/1032)
Class 3: 91.98% (929/1010)
Class 4: 98.37% (966/982)
Class 5: 89.24% (796/892)
Class 6: 82.78% (793/958)
Class 7: 88.32% (907/1027)
Class 8: 88.09% (858/974)
Class 9: 75.72% (764/1009)
Test Accuracy: 0.9027902790279028
=== Round 5/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.56% (1130/1135)
Class 2: 90.12% (930/1032)
Class 3: 95.15% (961/1010)
Class 4: 98.68% (969/982)
Class 5: 81.17% (724/892)
Class 6: 87.16% (835/958)
Class 7: 86.66% (890/1027)
Class 8: 86.34% (841/974)
Class 9: 62.93% (635/1009)
Test Accuracy: 0.8890889088908891
=== Round 6/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.12% (1125/1135)
Class 2: 93.41% (964/1032)
Class 3: 94.16% (951/1010)
Class 4: 98.37% (966/982)
Class 5: 79.26% (707/892)
Class 6: 90.29% (865/958)
Class 7: 87.54% (899/1027)
Class 8: 89.53% (872/974)
Class 9: 80.08% (808/1009)
Test Accuracy: 0.9131913191319132
=== Round 7/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.56% (1130/1135)
Class 2: 91.28% (942/1032)
Class 3: 92.67% (936/1010)
Class 4: 97.66% (959/982)
Class 5: 73.88% (659/892)
Class 6: 85.91% (823/958)
Class 7: 86.08% (884/1027)
Class 8: 83.88% (817/974)
Class 9: 83.15% (839/1009)
Test Accuracy: 0.8964896489648965
=== Round 8/50 ===
Class-wise Accuracy:
Class 0: 99.29% (973/980)
Class 1: 99.65% (1131/1135)
Class 2: 89.15% (920/1032)
Class 3: 93.47% (944/1010)
Class 4: 98.37% (966/982)
Class 5: 85.76% (765/892)
Class 6: 85.39% (818/958)
Class 7: 88.22% (906/1027)
Class 8: 87.99% (857/974)
Class 9: 86.32% (871/1009)
Test Accuracy: 0.9151915191519152
=== Round 9/50 ===
Class-wise Accuracy:
Class 0: 99.08% (971/980)
Class 1: 99.65% (1131/1135)
Class 2: 94.77% (978/1032)
Class 3: 91.19% (921/1010)
Class 4: 97.86% (961/982)
Class 5: 76.91% (686/892)
Class 6: 88.20% (845/958)
Class 7: 83.64% (859/1027)
Class 8: 81.21% (791/974)
Class 9: 79.58% (803/1009)
Test Accuracy: 0.8946894689468947
=== Round 10/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.38% (1128/1135)
Class 2: 95.25% (983/1032)
Class 3: 88.71% (896/1010)
Class 4: 97.96% (962/982)
Class 5: 86.32% (770/892)
Class 6: 89.87% (861/958)
Class 7: 84.52% (868/1027)
Class 8: 82.55% (804/974)
Class 9: 85.13% (859/1009)
Test Accuracy: 0.9105910591059105
=== Round 11/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.12% (1125/1135)
Class 2: 94.57% (976/1032)
Class 3: 94.65% (956/1010)
Class 4: 98.47% (967/982)
Class 5: 82.85% (739/892)
Class 6: 85.70% (821/958)
Class 7: 89.48% (919/1027)
Class 8: 83.88% (817/974)
Class 9: 86.03% (868/1009)
Test Accuracy: 0.9162916291629163
=== Round 12/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.12% (1125/1135)
Class 2: 95.64% (987/1032)
Class 3: 95.05% (960/1010)
Class 4: 98.57% (968/982)
Class 5: 78.48% (700/892)
Class 6: 89.25% (855/958)
Class 7: 86.17% (885/1027)
Class 8: 88.71% (864/974)
Class 9: 81.47% (822/1009)
Test Accuracy: 0.9140914091409141
=== Round 13/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.21% (1126/1135)
Class 2: 96.22% (993/1032)
Class 3: 96.24% (972/1010)
Class 4: 98.57% (968/982)
Class 5: 82.51% (736/892)
Class 6: 85.70% (821/958)
Class 7: 91.24% (937/1027)
Class 8: 89.94% (876/974)
Class 9: 79.09% (798/1009)
Test Accuracy: 0.9201920192019202
=== Round 14/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.47% (1129/1135)
Class 2: 93.41% (964/1032)
Class 3: 95.35% (963/1010)
Class 4: 98.78% (970/982)
Class 5: 77.24% (689/892)
Class 6: 82.46% (790/958)
Class 7: 87.15% (895/1027)
Class 8: 87.89% (856/974)
Class 9: 72.75% (734/1009)
Test Accuracy: 0.8964896489648965
=== Round 15/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.38% (1128/1135)
Class 2: 92.93% (959/1032)
Class 3: 93.86% (948/1010)
Class 4: 98.07% (963/982)
Class 5: 77.02% (687/892)
Class 6: 89.35% (856/958)
Class 7: 89.09% (915/1027)
Class 8: 91.07% (887/974)
Class 9: 81.96% (827/1009)
Test Accuracy: 0.9145914591459146
=== Round 16/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.47% (1129/1135)
Class 2: 91.67% (946/1032)
Class 3: 92.77% (937/1010)
Class 4: 98.27% (965/982)
Class 5: 76.91% (686/892)
Class 6: 83.30% (798/958)
Class 7: 89.58% (920/1027)
Class 8: 87.17% (849/974)
Class 9: 81.67% (824/1009)
Test Accuracy: 0.902990299029903
=== Round 17/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.12% (1125/1135)
Class 2: 96.51% (996/1032)
Class 3: 93.27% (942/1010)
Class 4: 97.86% (961/982)
Class 5: 80.94% (722/892)
Class 6: 87.27% (836/958)
Class 7: 87.63% (900/1027)
Class 8: 88.40% (861/974)
Class 9: 88.80% (896/1009)
Test Accuracy: 0.9213921392139214
=== Round 18/50 ===
Class-wise Accuracy:
Class 0: 99.29% (973/980)
Class 1: 99.65% (1131/1135)
Class 2: 92.05% (950/1032)
Class 3: 94.06% (950/1010)
Class 4: 98.17% (964/982)
Class 5: 86.10% (768/892)
Class 6: 91.75% (879/958)
Class 7: 92.31% (948/1027)
Class 8: 89.84% (875/974)
Class 9: 84.64% (854/1009)
Test Accuracy: 0.9292929292929293
=== Round 19/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.38% (1128/1135)
Class 2: 93.99% (970/1032)
Class 3: 95.45% (964/1010)
Class 4: 98.17% (964/982)
Class 5: 85.76% (765/892)
Class 6: 86.33% (827/958)
Class 7: 89.09% (915/1027)
Class 8: 87.06% (848/974)
Class 9: 84.14% (849/1009)
Test Accuracy: 0.9205920592059206
=== Round 20/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.38% (1128/1135)
Class 2: 92.15% (951/1032)
Class 3: 96.63% (976/1010)
Class 4: 98.37% (966/982)
Class 5: 75.78% (676/892)
Class 6: 90.08% (863/958)
Class 7: 85.20% (875/1027)
Class 8: 87.47% (852/974)
Class 9: 81.96% (827/1009)
Test Accuracy: 0.908990899089909
=== Round 21/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.38% (1128/1135)
Class 2: 93.60% (966/1032)
Class 3: 93.47% (944/1010)
Class 4: 98.07% (963/982)
Class 5: 73.43% (655/892)
Class 6: 88.31% (846/958)
Class 7: 89.87% (923/1027)
Class 8: 88.30% (860/974)
Class 9: 87.02% (878/1009)
Test Accuracy: 0.9137913791379138
=== Round 22/50 ===
Class-wise Accuracy:
Class 0: 99.49% (975/980)
Class 1: 99.47% (1129/1135)
Class 2: 90.99% (939/1032)
Class 3: 95.15% (961/1010)
Class 4: 98.47% (967/982)
Class 5: 85.20% (760/892)
Class 6: 87.79% (841/958)
Class 7: 91.04% (935/1027)
Class 8: 90.45% (881/974)
Class 9: 73.93% (746/1009)
Test Accuracy: 0.9134913491349135
=== Round 23/50 ===
Class-wise Accuracy:
Class 0: 99.39% (974/980)
Class 1: 99.38% (1128/1135)
Class 2: 94.67% (977/1032)
Class 3: 94.26% (952/1010)
Class 4: 97.86% (961/982)
Class 5: 78.70% (702/892)
Class 6: 85.49% (819/958)
Class 7: 89.78% (922/1027)
Class 8: 88.91% (866/974)
Class 9: 86.52% (873/1009)
Test Accuracy: 0.9174917491749175
Early stopping at round 23