WwZzz / easyFL

An experimental platform for federated learning.
Apache License 2.0
519 stars 88 forks source link

你好,运行修改后的fedfa.py,每次到round4就报错 #17

Closed 0Regrets closed 1 year ago

0Regrets commented 1 year ago

PS D:\easyFL> python main.py --task mnist_classification_cnum10_dist0_skew0_seed0 --model cnn --algorithm fedfa --num_rounds 20 --num_epoch 5 --learning_rate 0.001 --proportion 0.1 --batch_size 10 --eval_interval 1 2023-01-30 11:43:50,875 fflow.py initialize [line:92] INFO Using Logger in utils.logger.basic_logger 2023-01-30 11:43:50,875 fflow.py initialize [line:93] INFO Initializing fedtask: mnist_classification_cnum10_dist0_skew0_seed0 2023-01-30 11:43:51,242 fflow.py initialize [line:106] INFO Using model cnn in benchmark.mnist_classification.model.cnn as the globally shared model. 2023-01-30 11:43:51,242 fflow.py initialize [line:120] INFO No server-specific model is used. 2023-01-30 11:43:51,242 fflow.py initialize [line:132] INFO No client-specific model is used. 2023-01-30 11:43:51,242 fflow.py initialize [line:138] INFO Initializing devices: cpu will be used for this running. 2023-01-30 11:43:51,259 fflow.py initialize [line:157] INFO Initializing Clients: 10 clients of algorithm.fedfa.Client being created. 2023-01-30 11:43:51,259 fflow.py initialize [line:163] INFO Initializing Server: 1 server of algorithm.fedfa.Server being created. 2023-01-30 11:43:51,276 fflow.py initialize [line:168] INFO Initializing Systemic Heterogeneity: Availability IDL 2023-01-30 11:43:51,276 fflow.py initialize [line:169] INFO Initializing Systemic Heterogeneity: Connectivity IDL 2023-01-30 11:43:51,276 fflow.py initialize [line:170] INFO Initializing Systemic Heterogeneity: Completeness IDL 2023-01-30 11:43:51,276 fflow.py initialize [line:171] INFO Initializing Systemic Heterogeneity: Timeliness IDL 2023-01-30 11:43:51,276 fflow.py initialize [line:176] INFO Ready to start. 2023-01-30 11:43:51,276 fedbase.py run [line:59] INFO --------------Round 1-------------- 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.0972 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO test_loss 2.3085 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.0944 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO train_loss 2.3092 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.0959 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.0959 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0063 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO valid_loss 2.3088 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 2.3088 2023-01-30 11:44:53,102 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0013 2023-01-30 11:44:53,102 basic_logger.py time_end [line:74] INFO Eval Time Cost: 61.8260s 2023-01-30 11:46:29,294 basic_logger.py time_end [line:74] INFO Time Cost: 158.0185s 2023-01-30 11:46:29,294 fedbase.py run [line:59] INFO --------------Round 2-------------- 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9679 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO test_loss 0.0991 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9648 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO train_loss 0.1150 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9637 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9637 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0024 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1163 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1163 2023-01-30 11:47:36,910 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0086 2023-01-30 11:47:36,910 basic_logger.py time_end [line:74] INFO Eval Time Cost: 67.6151s 2023-01-30 11:49:15,304 basic_logger.py time_end [line:74] INFO Time Cost: 166.0097s 2023-01-30 11:49:15,304 fedbase.py run [line:59] INFO --------------Round 3-------------- 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9797 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO test_loss 0.0635 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9788 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO train_loss 0.0719 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9777 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9777 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0038 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO valid_loss 0.0733 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.0733 2023-01-30 11:50:19,216 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0108 2023-01-30 11:50:19,216 basic_logger.py time_end [line:74] INFO Eval Time Cost: 63.9115s 2023-01-30 11:52:04,157 basic_logger.py time_end [line:74] INFO Time Cost: 168.8528s 2023-01-30 11:52:04,158 fedbase.py run [line:59] INFO --------------Round 4-------------- 2023-01-30 11:53:14,734 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9819 2023-01-30 11:53:14,734 basic_logger.py show_current_output [line:134] INFO test_loss 0.0556 2023-01-30 11:53:14,734 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9825 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO train_loss 0.0574 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9820 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9820 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0042 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO valid_loss 0.0634 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.0634 2023-01-30 11:53:14,736 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0124 2023-01-30 11:53:14,736 basic_logger.py time_end [line:74] INFO Eval Time Cost: 70.5784s 2023-01-30 11:53:14,736 main.py main [line:16] ERROR Exception Logged Traceback (most recent call last): File "main.py", line 13, in main server.run() File "D:\easyFL\algorithm\fedbase.py", line 68, in run self.iterate() File "D:\easyFL\algorithm\fedfa.py", line 36, in iterate dw = wnew -self.model TypeError: unsupported operand type(s) for -: 'NoneType' and 'Model' Traceback (most recent call last): File "main.py", line 13, in main server.run() File "D:\easyFL\algorithm\fedbase.py", line 68, in run self.iterate() File "D:\easyFL\algorithm\fedfa.py", line 36, in iterate dw = wnew -self.model TypeError: unsupported operand type(s) for -: 'NoneType' and 'Model'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "main.py", line 22, in main() File "main.py", line 17, in main raise RuntimeError RuntimeError

WwZzz commented 1 year ago

你好,错误来源于对系统异构模拟器修改时,未对所有老版本的算法进行更新,导致iterate函数被调用时虚拟时钟不会自动前进,被选中的用户处于working状态,无法切换回idle状态。现已修复该bug并上传,谢谢指出

0Regrets commented 1 year ago

你好,运行之后转到/utils进行可视化,出不了结果 PS D:\easyFL> python generate_fedtask.py --benchmark mnist_classification --dist 0 --skew 0 --num_clients 100

Loading... Done.

Partitioning data... Done.

Saving data... Done. PS D:\easyFL> python main.py --task mnist_classification_cnum100_dist0_skew0_seed0 --model cnn --algorithm fedfa --num_rounds 10 --num_epoch 3 --learning_rate 0.001 --proportion 0.1 --batch_size 10 --eval_interval 1 2023-01-30 20:05:27,622 fflow.py initialize [line:92] INFO Using Logger in utils.logger.basic_logger 2023-01-30 20:05:27,622 fflow.py initialize [line:93] INFO Initializing fedtask: mnist_classification_cnum100_dist0_skew0_seed0 2023-01-30 20:05:27,956 fflow.py initialize [line:106] INFO Using model cnn in benchmark.mnist_classification.model.cnn as the globally shared model. 2023-01-30 20:05:27,956 fflow.py initialize [line:120] INFO No server-specific model is used. 2023-01-30 20:05:27,956 fflow.py initialize [line:132] INFO No client-specific model is used. 2023-01-30 20:05:27,956 fflow.py initialize [line:138] INFO Initializing devices: cpu will be used for this running. 2023-01-30 20:05:27,972 fflow.py initialize [line:157] INFO Initializing Clients: 100 clients of algorithm.fedfa.Client being created. 2023-01-30 20:05:27,972 fflow.py initialize [line:163] INFO Initializing Server: 1 server of algorithm.fedfa.Server being created. 2023-01-30 20:05:27,998 fflow.py initialize [line:168] INFO Initializing Systemic Heterogeneity: Availability IDL 2023-01-30 20:05:27,998 fflow.py initialize [line:169] INFO Initializing Systemic Heterogeneity: Connectivity IDL 2023-01-30 20:05:27,998 fflow.py initialize [line:170] INFO Initializing Systemic Heterogeneity: Completeness IDL 2023-01-30 20:05:27,998 fflow.py initialize [line:171] INFO Initializing Systemic Heterogeneity: Timeliness IDL 2023-01-30 20:05:27,998 fflow.py initialize [line:176] INFO Ready to start. 2023-01-30 20:05:27,998 fedbase.py run [line:60] INFO --------------Round 1-------------- 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.0972 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO test_loss 2.3085 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.0949 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO train_loss 2.3092 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.0938 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.0938 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0274 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO valid_loss 2.3085 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 2.3085 2023-01-30 20:06:30,049 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0054 2023-01-30 20:06:30,049 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.0508s 2023-01-30 20:07:24,000 basic_logger.py time_end [line:74] INFO Time Cost: 116.0026s 2023-01-30 20:07:24,000 fedbase.py run [line:60] INFO --------------Round 2-------------- 2023-01-30 20:08:26,528 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.8268 2023-01-30 20:08:26,543 basic_logger.py show_current_output [line:134] INFO test_loss 0.7473 2023-01-30 20:08:26,543 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.8142 2023-01-30 20:08:26,543 basic_logger.py show_current_output [line:134] INFO train_loss 0.7695 2023-01-30 20:08:26,544 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.8167 2023-01-30 20:08:26,544 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.8167 2023-01-30 20:08:26,544 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0315 2023-01-30 20:08:26,544 basic_logger.py show_current_output [line:134] INFO valid_loss 0.7611 2023-01-30 20:08:26,544 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.7611 2023-01-30 20:08:26,544 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0528 2023-01-30 20:08:26,544 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.5438s 2023-01-30 20:09:13,456 basic_logger.py time_end [line:74] INFO Time Cost: 109.4554s 2023-01-30 20:09:13,456 fedbase.py run [line:60] INFO --------------Round 3-------------- 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9052 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO test_loss 0.3443 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.8965 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO train_loss 0.3612 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.8981 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.8981 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0258 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO valid_loss 0.3533 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.3533 2023-01-30 20:10:16,250 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0574 2023-01-30 20:10:16,250 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.7938s 2023-01-30 20:11:15,340 basic_logger.py time_end [line:74] INFO Time Cost: 121.8839s 2023-01-30 20:11:15,340 fedbase.py run [line:60] INFO --------------Round 4-------------- 2023-01-30 20:12:18,067 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9205 2023-01-30 20:12:18,067 basic_logger.py show_current_output [line:134] INFO test_loss 0.2617 2023-01-30 20:12:18,067 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9188 2023-01-30 20:12:18,082 basic_logger.py show_current_output [line:134] INFO train_loss 0.2737 2023-01-30 20:12:18,083 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9192 2023-01-30 20:12:18,083 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9192 2023-01-30 20:12:18,084 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0239 2023-01-30 20:12:18,084 basic_logger.py show_current_output [line:134] INFO valid_loss 0.2667 2023-01-30 20:12:18,084 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.2667 2023-01-30 20:12:18,084 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0593 2023-01-30 20:12:18,084 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.7439s 2023-01-30 20:13:16,506 basic_logger.py time_end [line:74] INFO Time Cost: 121.1666s 2023-01-30 20:13:16,506 fedbase.py run [line:60] INFO --------------Round 5-------------- 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9343 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO test_loss 0.2148 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9309 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO train_loss 0.2287 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9324 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9324 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0216 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO valid_loss 0.2212 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.2212 2023-01-30 20:14:19,717 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0580 2023-01-30 20:14:19,717 basic_logger.py time_end [line:74] INFO Eval Time Cost: 63.2110s 2023-01-30 20:15:17,440 basic_logger.py time_end [line:74] INFO Time Cost: 120.9333s 2023-01-30 20:15:17,440 fedbase.py run [line:60] INFO --------------Round 6-------------- 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9461 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO test_loss 0.1833 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9410 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO train_loss 0.1967 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9426 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9426 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0217 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1903 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1903 2023-01-30 20:16:20,050 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0565 2023-01-30 20:16:20,050 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.6101s 2023-01-30 20:17:18,339 basic_logger.py time_end [line:74] INFO Time Cost: 120.8995s 2023-01-30 20:17:18,339 fedbase.py run [line:60] INFO --------------Round 7-------------- 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9501 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO test_loss 0.1629 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9472 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO train_loss 0.1742 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9470 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9470 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0195 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1702 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1702 2023-01-30 20:18:20,749 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0535 2023-01-30 20:18:20,749 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.4101s 2023-01-30 20:19:13,083 basic_logger.py time_end [line:74] INFO Time Cost: 114.7438s 2023-01-30 20:19:13,083 fedbase.py run [line:60] INFO --------------Round 8-------------- 2023-01-30 20:20:15,743 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9554 2023-01-30 20:20:15,743 basic_logger.py show_current_output [line:134] INFO test_loss 0.1469 2023-01-30 20:20:15,759 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9529 2023-01-30 20:20:15,759 basic_logger.py show_current_output [line:134] INFO train_loss 0.1572 2023-01-30 20:20:15,760 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9537 2023-01-30 20:20:15,760 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9537 2023-01-30 20:20:15,760 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0180 2023-01-30 20:20:15,760 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1537 2023-01-30 20:20:15,760 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1537 2023-01-30 20:20:15,760 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0556 2023-01-30 20:20:15,760 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.6770s 2023-01-30 20:21:14,083 basic_logger.py time_end [line:74] INFO Time Cost: 120.9999s 2023-01-30 20:21:14,083 fedbase.py run [line:60] INFO --------------Round 9-------------- 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9611 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO test_loss 0.1288 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9568 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO train_loss 0.1408 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9591 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9591 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0180 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1385 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1385 2023-01-30 20:22:16,710 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0515 2023-01-30 20:22:16,710 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.6269s 2023-01-30 20:23:09,844 basic_logger.py time_end [line:74] INFO Time Cost: 115.7612s 2023-01-30 20:23:09,844 fedbase.py run [line:60] INFO --------------Round 10-------------- 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9635 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO test_loss 0.1213 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9605 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO train_loss 0.1318 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9607 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9607 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0174 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1308 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1308 2023-01-30 20:24:12,004 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0523 2023-01-30 20:24:12,004 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.1598s 2023-01-30 20:25:11,077 basic_logger.py time_end [line:74] INFO Time Cost: 121.2332s 2023-01-30 20:25:11,077 fedbase.py run [line:73] INFO --------------Final Evaluation-------------- 2023-01-30 20:26:13,972 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.9652 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO test_loss 0.1089 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.9626 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO train_loss 0.1199 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.9645 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.9645 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0170 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO valid_loss 0.1186 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 0.1186 2023-01-30 20:26:13,988 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0510 2023-01-30 20:26:13,988 basic_logger.py time_end [line:74] INFO Eval Time Cost: 62.9107s 2023-01-30 20:26:13,988 fedbase.py run [line:77] INFO =================End================== 2023-01-30 20:26:13,988 basic_logger.py time_end [line:74] INFO Total Time Cost: 1245.9903s PS D:\easyFL> cd D:\easyFL\utils PS D:\easyFL\utils> python result_analysis.py PS D:\easyFL\utils>

WwZzz commented 1 year ago

你好,result_analysis.py 默认从res_config.yml中读取绘制参数,因此需要修改res_config.yml,为它指定绘制的方法为fedfa和绘制的变量。此外可以新建一个new.yml文件,并运行python result_analysis.py new.yml --save_figure获取绘制结果。你给的信息中相应yml文件的内容应该为

task:
  mnist_classification_cnum100_dist0_skew0_seed0
header:
  - fedfa
flt:
  B: <512
legend_flt: []
ploter:
  plot:
    - x: communication_round
      y: valid_loss
      xlabel: communication round
      ylabel: valid loss
      title: valid loss on MNIST
    - x: communication_round
      y: valid_accuracy
      xlabel: communication round
      ylabel: valid accuracy
      title: valid accuracy on MNIST
info:
  final_value:
    - valid_loss
  min_value:
    - valid_loss