Closed Sputnik-12 closed 5 months ago
这里的”对于Cifar100数据集即使将客户端数量修改为1“指的是用dataset文件夹下的代码切分数据集的时候,就设置为1个客户机吗?
我们这边默认设置数据量:tran set: test set=3:1,而且是先将train set和test set混合后再切分为3:1的。原始数据集tran set: test set=5:1,相比而言,训练集数据量更多,更不容易过拟合。
对于模型训练而言,训练数据量至关重要,如果希望跟集中式训练对比,那么请修改相应代码,保证这方面的一致性。
很抱歉,超参数选择上,我这边给不了太多的建议。因为我在做研究的过程中,本着“尽可能不调参”、“尽可能在各种任务上只使用一套超参数”的理念,去设计联邦学习算法。
我在尝试与集中式训练对比时发现对于Cifar100数据集即使将客户端数量修改为1,使用FedAvg或Local算法训练resnet18模型,测试准确率始终难以超过50%甚至40%。而只有1个客户端的情况下直接加载原始的Cifar100数据集,不使用dataset文件夹下的代码,最终能达到65%左右的准确率。将Cifar100数据集先合并再全部分配给1个客户端再划分似乎比原始数据集的划分更容易过拟合,不能等效成集中式训练,不知道什么原因。