This folder includes code for studying problems of federated learning, under construction.... migrated to this repo.
The main part of this code repository is a standalone simulation framework of federated training.
This folder temporarily suspends updating. Code are currently developed in a private repository and would be released public after some time.
This folder permanently suspends updating. Codes are migrated to this repo, and are actively updating.
The module (folder) optimizers contains optimizers for solving inner (local) optimization problems. Despite optimizers from torch and torch_optimizers, this module implements
ProxSGDFedPD_SGDFedPD_VRPSGDPSVRGpFedMeFedProxFedDR
Most of the optimizers are derived from ProxSGD.
The module (folder) regularizers contains code for regularizers for model parameters (weights).
L1NormL2NormL2NormSquaredNullRegularizer
These regularizers are subclasses of a base class Regularizer, and can be obtained by passing the name of the regularizer to the function get_regularizer. The regularizers share common methods eval and prox_eval.
The module (folder) compressors contains code for constructing compressors.
The module (folder) data_processing contains code for data preprocessing, io, etc. The following datasets are included in this module:
FedCIFARFedCIFAR100FedEMNISTFedShakespeareFedSyntheticFedProxFEMNISTFedProxMNIST
The module (folder) models contains pre-defined (neural network) models, most of which are very simple:
MLPFedPDMLPCNNMnistCNNFEMnistCNNFEMnist_TinyCNNCifarRNN_OriginalFedAvgRNN_StackOverFlowResNet18ResNet10
One can call the module_size or module_size_ properties to check the size (in terms of number of parameters and memory consumption respectively) of the model.
to write
to write
the folder boyd-admm contains matlab code from the website of S. Boyd for his ADMM long paper.