Closed Flying7514 closed 1 year ago
不理解为什么源码和论文是这样设计的,这样设计会多训练很多没有用的客户,训练时间会增加
说实话我也不是很理解为什么要在每个 global round 把模型参数发送给所有 client 却只取回部分 client 的模型参数。感觉唯一说得过去的假设就是 server 是希望每轮参加的 client 越多越好的,所以会尽可能把模型参数发送给 client 去训练,但由于现实中会有种种不稳定因素导致 client 可能并不会成功走完训练模型到返回模型参数这个 workflow,所以 server 这边用一个采样的方式来模拟这一点(感觉很牵强,但我也想不出别的解释了😂)。
先采样后训练这种方式是不是不影响pFedAvg的性能
先采样客户端后训练应该是绝大多数 FL 算法的共识,所以个人感觉影响性能这一说法并不成立。
非常感谢您的解释 !
感谢您的开源代码,麻烦问一下,您在pFedMe代码中是先采样客户端进行训练的,而pFedMe源码中是先训练所有客户端然后采样进行聚合。不理解为什么源码和论文是这样设计的,这样设计会多训练很多没有用的客户,训练时间会增加。而FedAvg是先采样后训练的初衷就是增加训练速度。不知道我的理解对不对。 还请问,先采样后训练这种方式是不是不影响pFedAvg的性能。