Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In the Per-FedAvg experiments, there is always an unignorable gap between the accuracy of the actual experimental results and the expected accuracy provided under the same conditions. #14

Closed
Drizzlingg opened this issue Jul 12, 2021 · 5 comments

Comments

@Drizzlingg
Copy link

For example:
\begin{table}[]
\begin{tabular}{ccc}
ACC(Per-FedAvg) & MNIST & Synthetic \
MLR & 92.96% & 81.04% \
DNN & 93.01% & 76.79%
\end{tabular}
\end{table}

Does this algorithm require special settings in actual experiments?
Finally, sincerely thank you for your work.

@CharlieDinh
Copy link
Owner

Hi Drizzling, there are no special settings for Per-FedAvg, maybe there is an update on implementation for per-fedavg and I haven't checked the running result. Please check this issue:
#8

@Drizzlingg
Copy link
Author

Hi CharlieDinh, thank you for your prompt response. I have reviewed this issue #8 and verified that the previous experimental results are no longer correct after preliminary experiments. Here I would like to sincerely thank you @CharlieDinh, @chuanting, and @sshpark for your contributions.

@CharlieDinh
Copy link
Owner

HI @Drizzlingg,
I will try to test the new implementation of per-fedavg and update the results soon.

@mengcz13
Copy link

What about the train_one_step method of UserPerAvg? Seems it still uses the two-step-update mentioned in #8 .

def train_one_step(self):

In addition, why do we need 2 batches of test data in train_one_step, which is used for evaluating personalized models in per-FedAvg? The per-FedAvg paper mentions that

The second and third algorithms that we consider are two different efficient approximations of Per-FedAvg.
Similarly, we evaluate the performance of these methods for the case that one step of local stochastic
gradient descent is performed during test time. (Page 8, 2nd paragraph of Sec 5)

I think it should simply be one step of SGD with 1 batch of test data?

@CharlieDinh
Copy link
Owner

HI @mengcz13
It follows the way per-FedAvg trains the model but on the test data (perFedAvg requires to adapt one step on the test data before evaluate.). One step means one local epoch not one batch. If just uses one batch, it will not follow the training step.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants