WwZzz / easyFL

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

TypeError: unsupported operand type(s) for *: 'float' and 'NoneType' #38

Closed timohaha closed 1 year ago

timohaha commented 1 year ago

D:\anaconda\envs\pytorch\python.exe D:\博士论文\paper2\easyFL-main\main.py --task cifar10_classification_cnum20_dist4_skew0.7_seed0 --model resnet18 --aggregate other --algorithm scaffold --num_rounds 100 --num_epochs 1 --learning_rate 0.01 --proportion 0.6 --batch_size 16 --eval_interval 1 --gpu 0 2023-08-09 08:15:49,563 fflow.py initialize [line:92] INFO Using Logger inutils.logger.basic_logger 2023-08-09 08:15:49,563 fflow.py initialize [line:93] INFO Initializing fedtask: cifar10_classification_cnum20_dist4_skew0.7_seed0 Files already downloaded and verified Files already downloaded and verified 2023-08-09 08:15:51,150 fflow.py initialize [line:106] INFO Using modelresnet18inbenchmark.cifar10_classification.model.resnet18as the globally shared model. 2023-08-09 08:15:51,150 fflow.py initialize [line:120] INFO No server-specific model is used. 2023-08-09 08:15:51,150 fflow.py initialize [line:132] INFO No client-specific model is used. 2023-08-09 08:15:51,150 fflow.py initialize [line:138] INFO Initializing devices: cuda:0 will be used for this running. 2023-08-09 08:15:52,339 fflow.py initialize [line:157] INFO Initializing Clients: 20 clients ofalgorithm.scaffold.Clientbeing created. 2023-08-09 08:15:52,339 fflow.py initialize [line:163] INFO Initializing Server: 1 server ofalgorithm.scaffold.Server` being created. 2023-08-09 08:15:52,413 fflow.py initialize [line:168] INFO Initializing Systemic Heterogeneity: Availability IDL 2023-08-09 08:15:52,413 fflow.py initialize [line:169] INFO Initializing Systemic Heterogeneity: Connectivity IDL 2023-08-09 08:15:52,413 fflow.py initialize [line:170] INFO Initializing Systemic Heterogeneity: Completeness IDL 2023-08-09 08:15:52,413 fflow.py initialize [line:171] INFO Initializing Systemic Heterogeneity: Timeliness IDL 2023-08-09 08:15:52,414 fflow.py initialize [line:176] INFO Ready to start. 2023-08-09 08:15:52,414 fedbase.py run [line:64] INFO --------------Round 1-------------- 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.1000 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO test_loss 1.8656 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.1005 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO train_loss 1.8656 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.0980 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.1352 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.1431 2023-08-09 08:17:13,612 basic_logger.py show_current_output [line:134] INFO valid_loss 1.8651 2023-08-09 08:17:13,613 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 1.8586 2023-08-09 08:17:13,613 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.0145 2023-08-09 08:17:13,613 basic_logger.py time_end [line:74] INFO Eval Time Cost: 81.1995s 2023-08-09 08:18:34,178 basic_logger.py time_end [line:74] INFO Time Cost: 161.7642s 2023-08-09 08:18:34,178 fedbase.py run [line:64] INFO --------------Round 2-------------- 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.1189 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO test_loss 1.8432 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.1188 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO train_loss 1.8449 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.1180 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.1091 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.1004 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO valid_loss 1.8496 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 1.8126 2023-08-09 08:19:55,190 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.2656 2023-08-09 08:19:55,190 basic_logger.py time_end [line:74] INFO Eval Time Cost: 81.0116s 2023-08-09 08:20:27,632 basic_logger.py time_end [line:74] INFO Time Cost: 113.4540s 2023-08-09 08:20:27,632 fedbase.py run [line:64] INFO --------------Round 3-------------- 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.2738 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO test_loss 1.4739 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.2771 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO train_loss 1.4716 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.2728 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.2710 2023-08-09 08:21:48,558 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.0861 2023-08-09 08:21:48,559 basic_logger.py show_current_output [line:134] INFO valid_loss 1.4940 2023-08-09 08:21:48,559 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 1.4443 2023-08-09 08:21:48,559 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.2772 2023-08-09 08:21:48,559 basic_logger.py time_end [line:74] INFO Eval Time Cost: 80.9270s 2023-08-09 08:21:53,176 basic_logger.py time_end [line:74] INFO Time Cost: 85.5443s 2023-08-09 08:21:53,176 fedbase.py run [line:64] INFO --------------Round 4-------------- 2023-08-09 08:23:14,047 basic_logger.py show_current_output [line:134] INFO test_accuracy 0.1806 2023-08-09 08:23:14,047 basic_logger.py show_current_output [line:134] INFO test_loss 4.0666 2023-08-09 08:23:14,047 basic_logger.py show_current_output [line:134] INFO train_accuracy 0.1782 2023-08-09 08:23:14,047 basic_logger.py show_current_output [line:134] INFO train_loss 4.1298 2023-08-09 08:23:14,047 basic_logger.py show_current_output [line:134] INFO valid_accuracy 0.1829 2023-08-09 08:23:14,047 basic_logger.py show_current_output [line:134] INFO mean_valid_accuracy 0.2202 2023-08-09 08:23:14,048 basic_logger.py show_current_output [line:134] INFO std_valid_accuracy 0.1279 2023-08-09 08:23:14,048 basic_logger.py show_current_output [line:134] INFO valid_loss 4.0689 2023-08-09 08:23:14,048 basic_logger.py show_current_output [line:134] INFO mean_valid_loss 3.7908 2023-08-09 08:23:14,048 basic_logger.py show_current_output [line:134] INFO std_valid_loss 0.9718 2023-08-09 08:23:14,048 basic_logger.py time_end [line:74] INFO Eval Time Cost: 80.8717s 2023-08-09 08:23:14,048 main.py main [line:16] ERROR Exception Logged Traceback (most recent call last): File "D:\博士论文\paper2\easyFL-main\main.py", line 13, in main server.run() File "D:\博士论文\paper2\easyFL-main\algorithm\fedbase.py", line 73, in run self.iterate() File "D:\博士论文\paper2\easyFL-main\algorithm\scaffold.py", line 30, in iterate self.model, self.cg = self.aggregate(dys, dcs) File "D:\博士论文\paper2\easyFL-main\algorithm\scaffold.py", line 36, in aggregate new_model = self.model + self.eta fmodule._model_average(dys) TypeError: unsupported operand type(s) for : 'float' and 'NoneType' Traceback (most recent call last): File "D:\博士论文\paper2\easyFL-main\main.py", line 13, in main server.run() File "D:\博士论文\paper2\easyFL-main\algorithm\fedbase.py", line 73, in run self.iterate() File "D:\博士论文\paper2\easyFL-main\algorithm\scaffold.py", line 30, in iterate self.model, self.cg = self.aggregate(dys, dcs) File "D:\博士论文\paper2\easyFL-main\algorithm\scaffold.py", line 36, in aggregate new_model = self.model + self.eta fmodule._model_average(dys) TypeError: unsupported operand type(s) for : 'float' and 'NoneType'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "D:\博士论文\paper2\easyFL-main\main.py", line 22, in main() File "D:\博士论文\paper2\easyFL-main\main.py", line 17, in main raise RuntimeError RuntimeError ` 您好,我在cifar10数据集上选用scaffold算法进行训练时,在迭代过程中报错,我并没有找到问题的原因。在复现algorithm中其他一些非FedAvg、FedProx过程中同样有这个问题。