How to run FedOpt?
Excuse me I set the cfg like:
fedopt
cfg.expname = 'fedopt' cfg.federate.share_local_model = False cfg.federate.online_aggr = False cfg.federate.method = 'FedOpt' cfg.fedopt.use = True cfg.fedopt.optimizer.type = 'SGD' cfg.fedopt.optimizer.lr = 1. cfg.fedopt.annealing = False cfg.fedopt.annealing_step_size = 2000 cfg.fedopt.annealing_gamma = 0.5
模型参数
from federatedscope.fflavg import model_resnet cfg.model.type = 'convnet5' cfg.model.out_channels = 62
数据参数
from federatedscope.core.auxiliaries.data_builder import get_data cfg.data.type = 'femnist' cfg.data.root = './data' cfg.data.splits = [0.6, 0.2, 0.2] cfg.data.splitter = 'lda' cfg.data.splitter_args = [{'alpha':0.05}] cfg.data.shuffle = True cfg.data.batch_size = 128 cfg.data.transform = [['ToTensor'], ['Normalize', {'mean':[0.1307], 'std':[0.3081]}], ['Resize',{'size': [64, 64]}]]
训练参数
cfg.train.optimizer.lr = 0.01 cfg.train.optimizer.weight_decay = 0.0 cfg.grad.grad_clip = 5.0 cfg.early_stop.patience = 10 cfg.criterion.type = 'CrossEntropyLoss'
系统参数
cfg.wandb.use = True cfg.wandb.client_train_info = False cfg.use_gpu = True cfg.seed = 908 cfg.eval.freq = 1 cfg.eval.metrics = ['acc', 'f1'] cfg.eval.best_res_update_round_wise_key = 'test_acc' cfg.federate.mode = 'standalone' cfg.federate.make_global_eval = True cfg.federate.merge_test_data = True cfg.federate.merge_val_data = True cfg.federate.total_round_num = 200 cfg.train.batch_or_epoch = 'epoch' cfg.train.local_update_steps = 3 cfg.federate.client_num = 10 cfg.federate.sample_client_num = -1
But the result of experiment is odd:
Can you help me to debug?