plato-learn 1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (843) hide show
  1. plato_learn-1.1/.bashrc +100 -0
  2. plato_learn-1.1/.github/ISSUE_TEMPLATE/bug_report.md +31 -0
  3. plato_learn-1.1/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. plato_learn-1.1/.github/ISSUE_TEMPLATE/request-for-comments.md +11 -0
  5. plato_learn-1.1/.github/pull_request_template.md +25 -0
  6. plato_learn-1.1/.github/workflows/configs/fedavg_yolov8.yml +179 -0
  7. plato_learn-1.1/.github/workflows/delete_workflow_runs.yml +27 -0
  8. plato_learn-1.1/.github/workflows/gpu_tests.yml.disabled +36 -0
  9. plato_learn-1.1/.github/workflows/pypi_publish.yml +32 -0
  10. plato_learn-1.1/.github/workflows/pytorch_tests.yml +32 -0
  11. plato_learn-1.1/.gitignore +163 -0
  12. plato_learn-1.1/.gitmodules +12 -0
  13. plato_learn-1.1/.python-version +1 -0
  14. plato_learn-1.1/Dockerfile +20 -0
  15. plato_learn-1.1/LICENSE +201 -0
  16. plato_learn-1.1/PKG-INFO +35 -0
  17. plato_learn-1.1/README.md +3 -0
  18. plato_learn-1.1/configs/CIFAR10/fedavg_resnet18.yml +62 -0
  19. plato_learn-1.1/configs/CIFAR10/fedavg_resnet18_dp.yml +72 -0
  20. plato_learn-1.1/configs/CIFAR10/fedavg_resnet18_torchhub.yml +62 -0
  21. plato_learn-1.1/configs/CIFAR10/fedavg_vgg16.yml +59 -0
  22. plato_learn-1.1/configs/CIFAR10/fedavg_vgg16_dp.yml +62 -0
  23. plato_learn-1.1/configs/CIFAR10/fedavg_wideresnet.yml +67 -0
  24. plato_learn-1.1/configs/CIFAR10/mistnet_pretrain_resnet18.yml +57 -0
  25. plato_learn-1.1/configs/CIFAR10/mistnet_resnet18.yml +66 -0
  26. plato_learn-1.1/configs/CIFAR10/split_learning_resnet18.yml +80 -0
  27. plato_learn-1.1/configs/CIFAR10/test_enhance_resnet18.yml +68 -0
  28. plato_learn-1.1/configs/CIFAR100/fedavg_resnet18.yml +65 -0
  29. plato_learn-1.1/configs/CINIC10/fedavg_vgg16.yml +66 -0
  30. plato_learn-1.1/configs/CelebA/fedavg_gan_dcgan.yml +78 -0
  31. plato_learn-1.1/configs/CelebA/fedavg_resnet18.yml +75 -0
  32. plato_learn-1.1/configs/EMNIST/fedavg_async_lenet5.yml +80 -0
  33. plato_learn-1.1/configs/EMNIST/fedavg_lenet5.yml +68 -0
  34. plato_learn-1.1/configs/EMNIST/fedavg_lenet5_dp.yml +78 -0
  35. plato_learn-1.1/configs/EMNIST/fedavg_lenet5_label_noniid.yml +71 -0
  36. plato_learn-1.1/configs/EMNIST/fedavg_lenet5_mixed_label_noniid.yml +74 -0
  37. plato_learn-1.1/configs/FEMNIST/FedAvg_LeNet.yml +79 -0
  38. plato_learn-1.1/configs/FashionMNIST/fedavg_lenet5.yml +57 -0
  39. plato_learn-1.1/configs/Flickr30KEntities/flickr30Kentities.yml +32 -0
  40. plato_learn-1.1/configs/HuggingFace/fedavg_shakespeare_bert.yml +69 -0
  41. plato_learn-1.1/configs/HuggingFace/fedavg_shakespeare_distilgpt2.yml +69 -0
  42. plato_learn-1.1/configs/HuggingFace/fedavg_wikitext2_gpt2.yml +70 -0
  43. plato_learn-1.1/configs/Kinetics/Models/kinetics_flow_audio_models.yml +92 -0
  44. plato_learn-1.1/configs/Kinetics/Models/kinetics_full_models.yml +154 -0
  45. plato_learn-1.1/configs/Kinetics/Pipeline/gym_audio_feature.yml +123 -0
  46. plato_learn-1.1/configs/Kinetics/Pipeline/gym_csn_rgb.yml +199 -0
  47. plato_learn-1.1/configs/Kinetics/Pipeline/gym_tsn_flow.yml +207 -0
  48. plato_learn-1.1/configs/Kinetics/Pipeline/kinetics_audio_feature.yml +123 -0
  49. plato_learn-1.1/configs/Kinetics/Pipeline/kinetics_csn_rgb.yml +199 -0
  50. plato_learn-1.1/configs/Kinetics/Pipeline/kinetics_tsn_flow.yml +207 -0
  51. plato_learn-1.1/configs/Kinetics/kinetics_mm.yml +131 -0
  52. plato_learn-1.1/configs/MNIST/fedavg_async_lenet5.yml +80 -0
  53. plato_learn-1.1/configs/MNIST/fedavg_cross_silo_lenet5.yml +76 -0
  54. plato_learn-1.1/configs/MNIST/fedavg_lenet5.yml +63 -0
  55. plato_learn-1.1/configs/MNIST/fedavg_lenet5_dp.yml +63 -0
  56. plato_learn-1.1/configs/MNIST/fedavg_lenet5_he.yml +64 -0
  57. plato_learn-1.1/configs/MNIST/fedavg_lenet5_noniid.yml +63 -0
  58. plato_learn-1.1/configs/MNIST/fedavg_lenet5_timm.yml +71 -0
  59. plato_learn-1.1/configs/MNIST/fedavg_lenet5_timm_globalLR.yml +72 -0
  60. plato_learn-1.1/configs/MNIST/fedprox_lenet5.yml +50 -0
  61. plato_learn-1.1/configs/MNIST/mistnet_lenet5.yml +68 -0
  62. plato_learn-1.1/configs/MNIST/mistnet_pretrain_lenet5.yml +49 -0
  63. plato_learn-1.1/configs/MNIST/mnist_distribution_noniid.yml +13 -0
  64. plato_learn-1.1/configs/MNIST/mnist_iid.yml +11 -0
  65. plato_learn-1.1/configs/PASCAL/fedavg_unet.yml +61 -0
  66. plato_learn-1.1/configs/Purchase100/fedavg_customized_multilayer.yml +97 -0
  67. plato_learn-1.1/configs/Purchase100/fedavg_general_mlp.yml +74 -0
  68. plato_learn-1.1/configs/Purchase100/fedavg_multilayer.yml +73 -0
  69. plato_learn-1.1/configs/ReferItGame/referitgame.yml +35 -0
  70. plato_learn-1.1/configs/Texas100/fedavg_multilayer.yml +73 -0
  71. plato_learn-1.1/configs/TinyImageNet/fedavg_alexnet.yml +66 -0
  72. plato_learn-1.1/configs/TinyImageNet/fedavg_googlenet.yml +66 -0
  73. plato_learn-1.1/configs/TinyImageNet/fedavg_inceptionv3.yml +66 -0
  74. plato_learn-1.1/configs/TinyImageNet/fedavg_shufflenet.yml +66 -0
  75. plato_learn-1.1/configs/TinyImageNet/fedavg_squeezenet.yml +66 -0
  76. plato_learn-1.1/configs/ViT/fedavg_cifar10_dvit.yml +72 -0
  77. plato_learn-1.1/configs/ViT/fedavg_cifar10_swinv2.yml +70 -0
  78. plato_learn-1.1/configs/ViT/fedavg_cifar10_t2tvit14.yml +72 -0
  79. plato_learn-1.1/configs/ViT/fedavg_tinyimagenet_levit.yml +82 -0
  80. plato_learn-1.1/configs/yolov8/yolov8.yml +172 -0
  81. plato_learn-1.1/dockerrun.sh +2 -0
  82. plato_learn-1.1/dockerrun_gpu.sh +1 -0
  83. plato_learn-1.1/docs/Makefile +20 -0
  84. plato_learn-1.1/docs/README.md +11 -0
  85. plato_learn-1.1/docs/_static/css/css-style.css +71 -0
  86. plato_learn-1.1/docs/client.md +130 -0
  87. plato_learn-1.1/docs/conf.py +53 -0
  88. plato_learn-1.1/docs/configuration.md +653 -0
  89. plato_learn-1.1/docs/deployment.md +334 -0
  90. plato_learn-1.1/docs/development.md +121 -0
  91. plato_learn-1.1/docs/examples.md +602 -0
  92. plato_learn-1.1/docs/index.md +24 -0
  93. plato_learn-1.1/docs/installation.md +113 -0
  94. plato_learn-1.1/docs/make.bat +35 -0
  95. plato_learn-1.1/docs/misc.md +82 -0
  96. plato_learn-1.1/docs/netlify.toml +3 -0
  97. plato_learn-1.1/docs/outdated_docs/Multimodal_FL.md +72 -0
  98. plato_learn-1.1/docs/outdated_docs/Reinforcement_Learning.md +37 -0
  99. plato_learn-1.1/docs/papers/MistNet.pdf +0 -0
  100. plato_learn-1.1/docs/patches/base.py.patch +22 -0
  101. plato_learn-1.1/docs/patches/config.py.patch +10 -0
  102. plato_learn-1.1/docs/patches/patch_cc.sh +3 -0
  103. plato_learn-1.1/docs/poetry.lock +673 -0
  104. plato_learn-1.1/docs/pyproject.toml +18 -0
  105. plato_learn-1.1/docs/quickstart.md +61 -0
  106. plato_learn-1.1/docs/requirements.txt +37 -0
  107. plato_learn-1.1/docs/running.md +222 -0
  108. plato_learn-1.1/docs/runtime.txt +1 -0
  109. plato_learn-1.1/docs/server.md +289 -0
  110. plato_learn-1.1/docs/trainer.md +368 -0
  111. plato_learn-1.1/documentation/.gitignore +1 -0
  112. plato_learn-1.1/documentation/README.md +21 -0
  113. plato_learn-1.1/documentation/docs/ccdb.md +223 -0
  114. plato_learn-1.1/documentation/docs/configurations/algorithm.md +29 -0
  115. plato_learn-1.1/documentation/docs/configurations/clients.md +96 -0
  116. plato_learn-1.1/documentation/docs/configurations/data.md +80 -0
  117. plato_learn-1.1/documentation/docs/configurations/general.md +11 -0
  118. plato_learn-1.1/documentation/docs/configurations/overview.md +4 -0
  119. plato_learn-1.1/documentation/docs/configurations/parameters.md +20 -0
  120. plato_learn-1.1/documentation/docs/configurations/results.md +22 -0
  121. plato_learn-1.1/documentation/docs/configurations/server.md +129 -0
  122. plato_learn-1.1/documentation/docs/configurations/trainer.md +156 -0
  123. plato_learn-1.1/documentation/docs/deployment.md +339 -0
  124. plato_learn-1.1/documentation/docs/development.md +161 -0
  125. plato_learn-1.1/documentation/docs/examples/Getting Started.md +83 -0
  126. plato_learn-1.1/documentation/docs/examples/algorithms/1. Server Aggregation Algorithms.md +23 -0
  127. plato_learn-1.1/documentation/docs/examples/algorithms/10. Algorithms based on Neural Architecture Search and Model Search.md +109 -0
  128. plato_learn-1.1/documentation/docs/examples/algorithms/11. Three-layer Federated Learning Algorithms.md +21 -0
  129. plato_learn-1.1/documentation/docs/examples/algorithms/12. Poisoning Detection Algorithms.md +10 -0
  130. plato_learn-1.1/documentation/docs/examples/algorithms/13. Model Pruning Algorithms.md +32 -0
  131. plato_learn-1.1/documentation/docs/examples/algorithms/14. Gradient Leakage Attacks and Defences.md +8 -0
  132. plato_learn-1.1/documentation/docs/examples/algorithms/2. Secure Aggregation with Homomorphic Encryption.md +8 -0
  133. plato_learn-1.1/documentation/docs/examples/algorithms/3. Asynchronous Federated Learning Algorithms.md +38 -0
  134. plato_learn-1.1/documentation/docs/examples/algorithms/4. Federated Unlearning.md +55 -0
  135. plato_learn-1.1/documentation/docs/examples/algorithms/5. Algorithms with Customized Client Training Loops.md +49 -0
  136. plato_learn-1.1/documentation/docs/examples/algorithms/6. Client Selection Algorithms.md +77 -0
  137. plato_learn-1.1/documentation/docs/examples/algorithms/7. Split Learning Algorithms.md +29 -0
  138. plato_learn-1.1/documentation/docs/examples/algorithms/8. Personalized Federated Learning Algorithms.md +101 -0
  139. plato_learn-1.1/documentation/docs/examples/algorithms/9. Personalized Federated Learning Algorithms based on Self-Supervised Learning.md +88 -0
  140. plato_learn-1.1/documentation/docs/index.md +71 -0
  141. plato_learn-1.1/documentation/docs/install.md +42 -0
  142. plato_learn-1.1/documentation/docs/misc.md +81 -0
  143. plato_learn-1.1/documentation/docs/quickstart.md +121 -0
  144. plato_learn-1.1/documentation/docs/references/clients.md +122 -0
  145. plato_learn-1.1/documentation/docs/references/servers.md +265 -0
  146. plato_learn-1.1/documentation/docs/references/trainers.md +350 -0
  147. plato_learn-1.1/documentation/mkdocs.yml +50 -0
  148. plato_learn-1.1/examples/async/data_hetero/data_hetero_femnist_lenet5.yml +70 -0
  149. plato_learn-1.1/examples/async/data_hetero/run.py +22 -0
  150. plato_learn-1.1/examples/async/fedasync/fedasync.py +27 -0
  151. plato_learn-1.1/examples/async/fedasync/fedasync_CIFAR10_resnet18.yml +85 -0
  152. plato_learn-1.1/examples/async/fedasync/fedasync_MNIST_lenet5.yml +98 -0
  153. plato_learn-1.1/examples/async/fedasync/fedasync_algorithm.py +21 -0
  154. plato_learn-1.1/examples/async/fedasync/fedasync_server.py +124 -0
  155. plato_learn-1.1/examples/async/fedbuff/fedbuff.py +22 -0
  156. plato_learn-1.1/examples/async/fedbuff/fedbuff_cifar10.yml +122 -0
  157. plato_learn-1.1/examples/async/fedbuff/fedbuff_server.py +51 -0
  158. plato_learn-1.1/examples/async/port/port.py +25 -0
  159. plato_learn-1.1/examples/async/port/port_cifar10.yml +122 -0
  160. plato_learn-1.1/examples/async/port/port_server.py +144 -0
  161. plato_learn-1.1/examples/basic/basic.py +106 -0
  162. plato_learn-1.1/examples/basic/config.yml +70 -0
  163. plato_learn-1.1/examples/callbacks/callback_examples.py +33 -0
  164. plato_learn-1.1/examples/callbacks/callbacks.py +29 -0
  165. plato_learn-1.1/examples/client_selection/afl/afl.py +25 -0
  166. plato_learn-1.1/examples/client_selection/afl/afl_FashionMNIST_lenet5.yml +110 -0
  167. plato_learn-1.1/examples/client_selection/afl/afl_client.py +33 -0
  168. plato_learn-1.1/examples/client_selection/afl/afl_server.py +102 -0
  169. plato_learn-1.1/examples/client_selection/oort/oort.py +25 -0
  170. plato_learn-1.1/examples/client_selection/oort/oort_MNIST_lenet5.yml +81 -0
  171. plato_learn-1.1/examples/client_selection/oort/oort_client.py +32 -0
  172. plato_learn-1.1/examples/client_selection/oort/oort_server.py +232 -0
  173. plato_learn-1.1/examples/client_selection/oort/oort_trainer.py +36 -0
  174. plato_learn-1.1/examples/client_selection/pisces/pisces.py +27 -0
  175. plato_learn-1.1/examples/client_selection/pisces/pisces_MNIST_lenet5.yml +109 -0
  176. plato_learn-1.1/examples/client_selection/pisces/pisces_client.py +45 -0
  177. plato_learn-1.1/examples/client_selection/pisces/pisces_server.py +245 -0
  178. plato_learn-1.1/examples/client_selection/pisces/pisces_trainer.py +32 -0
  179. plato_learn-1.1/examples/client_selection/pisces/pyproject.toml +9 -0
  180. plato_learn-1.1/examples/client_selection/polaris/polaris.py +17 -0
  181. plato_learn-1.1/examples/client_selection/polaris/polaris_FEMNIST_LeNet5.yml +105 -0
  182. plato_learn-1.1/examples/client_selection/polaris/polaris_server.py +181 -0
  183. plato_learn-1.1/examples/client_selection/polaris/pyproject.toml +10 -0
  184. plato_learn-1.1/examples/colab/colab_use_terminal.ipynb +192 -0
  185. plato_learn-1.1/examples/colab/plato_colab.ipynb +236 -0
  186. plato_learn-1.1/examples/customized/client.yml +62 -0
  187. plato_learn-1.1/examples/customized/custom_client.py +125 -0
  188. plato_learn-1.1/examples/customized/custom_server.py +131 -0
  189. plato_learn-1.1/examples/customized/server.yml +67 -0
  190. plato_learn-1.1/examples/customized_client_training/feddyn/feddyn.py +27 -0
  191. plato_learn-1.1/examples/customized_client_training/feddyn/feddyn_MNIST_lenet5.yml +70 -0
  192. plato_learn-1.1/examples/customized_client_training/feddyn/feddyn_trainer.py +98 -0
  193. plato_learn-1.1/examples/customized_client_training/fedmos/fedmos.py +26 -0
  194. plato_learn-1.1/examples/customized_client_training/fedmos/fedmos_MNIST_lenet5.yml +71 -0
  195. plato_learn-1.1/examples/customized_client_training/fedmos/fedmos_trainer.py +63 -0
  196. plato_learn-1.1/examples/customized_client_training/fedmos/optimizers.py +65 -0
  197. plato_learn-1.1/examples/customized_client_training/fedprox/basic_lenet5.yml +19 -0
  198. plato_learn-1.1/examples/customized_client_training/fedprox/emnist_noniid.yml +12 -0
  199. plato_learn-1.1/examples/customized_client_training/fedprox/fedprox.py +31 -0
  200. plato_learn-1.1/examples/customized_client_training/fedprox/fedprox_EMNIST_lenet5.yml +45 -0
  201. plato_learn-1.1/examples/customized_client_training/fedprox/fedprox_MNIST_lenet5.yml +45 -0
  202. plato_learn-1.1/examples/customized_client_training/fedprox/fedprox_trainer.py +64 -0
  203. plato_learn-1.1/examples/customized_client_training/fedprox/lenet5_params.yml +7 -0
  204. plato_learn-1.1/examples/customized_client_training/fedprox/mnist_noniid.yml +14 -0
  205. plato_learn-1.1/examples/customized_client_training/scaffold/scaffold.py +29 -0
  206. plato_learn-1.1/examples/customized_client_training/scaffold/scaffold_MNIST_lenet5.yml +55 -0
  207. plato_learn-1.1/examples/customized_client_training/scaffold/scaffold_callback.py +102 -0
  208. plato_learn-1.1/examples/customized_client_training/scaffold/scaffold_client.py +63 -0
  209. plato_learn-1.1/examples/customized_client_training/scaffold/scaffold_server.py +58 -0
  210. plato_learn-1.1/examples/customized_client_training/scaffold/scaffold_trainer.py +136 -0
  211. plato_learn-1.1/examples/customized_processor/customize_callback.py +58 -0
  212. plato_learn-1.1/examples/customized_processor/customize_processor.py +19 -0
  213. plato_learn-1.1/examples/customized_processor/dummy_processor.py +25 -0
  214. plato_learn-1.1/examples/detector/README.md +83 -0
  215. plato_learn-1.1/examples/detector/aggregations.py +455 -0
  216. plato_learn-1.1/examples/detector/asyncfilter_cifar_2.yml +88 -0
  217. plato_learn-1.1/examples/detector/asyncfilter_cinic_2.yml +96 -0
  218. plato_learn-1.1/examples/detector/asyncfilter_fashion_6.yml +85 -0
  219. plato_learn-1.1/examples/detector/attacks.py +653 -0
  220. plato_learn-1.1/examples/detector/defences.py +112 -0
  221. plato_learn-1.1/examples/detector/detector.py +24 -0
  222. plato_learn-1.1/examples/detector/detector_server.py +201 -0
  223. plato_learn-1.1/examples/detector/detectors.py +467 -0
  224. plato_learn-1.1/examples/detector/pyproject.toml +9 -0
  225. plato_learn-1.1/examples/gradient_leakage_attacks/README.md +113 -0
  226. plato_learn-1.1/examples/gradient_leakage_attacks/defense/GradDefense/compensate.py +129 -0
  227. plato_learn-1.1/examples/gradient_leakage_attacks/defense/GradDefense/dataloader.py +50 -0
  228. plato_learn-1.1/examples/gradient_leakage_attacks/defense/GradDefense/perturb.py +264 -0
  229. plato_learn-1.1/examples/gradient_leakage_attacks/defense/GradDefense/sensitivity.py +59 -0
  230. plato_learn-1.1/examples/gradient_leakage_attacks/defense/Outpost/perturb.py +53 -0
  231. plato_learn-1.1/examples/gradient_leakage_attacks/dlg.py +23 -0
  232. plato_learn-1.1/examples/gradient_leakage_attacks/dlg_client.py +22 -0
  233. plato_learn-1.1/examples/gradient_leakage_attacks/dlg_model.py +31 -0
  234. plato_learn-1.1/examples/gradient_leakage_attacks/dlg_server.py +1023 -0
  235. plato_learn-1.1/examples/gradient_leakage_attacks/dlg_trainer.py +281 -0
  236. plato_learn-1.1/examples/gradient_leakage_attacks/fedavg_pretraining.py +19 -0
  237. plato_learn-1.1/examples/gradient_leakage_attacks/fedavg_resnet152_cifar100.yml +77 -0
  238. plato_learn-1.1/examples/gradient_leakage_attacks/fedavg_resnet18_cifar100.yml +77 -0
  239. plato_learn-1.1/examples/gradient_leakage_attacks/fishing.yml +151 -0
  240. plato_learn-1.1/examples/gradient_leakage_attacks/malicious_attacks/fishing.py +88 -0
  241. plato_learn-1.1/examples/gradient_leakage_attacks/nn/lenet.py +50 -0
  242. plato_learn-1.1/examples/gradient_leakage_attacks/nn/resnet.py +224 -0
  243. plato_learn-1.1/examples/gradient_leakage_attacks/pretrained_eval.yml +139 -0
  244. plato_learn-1.1/examples/gradient_leakage_attacks/pretrained_eval_delta.yml +139 -0
  245. plato_learn-1.1/examples/gradient_leakage_attacks/pretrained_train.yml +137 -0
  246. plato_learn-1.1/examples/gradient_leakage_attacks/pretrained_train_delta.yml +139 -0
  247. plato_learn-1.1/examples/gradient_leakage_attacks/pyproject.toml +10 -0
  248. plato_learn-1.1/examples/gradient_leakage_attacks/requirement.txt +4 -0
  249. plato_learn-1.1/examples/gradient_leakage_attacks/untrained_eval.yml +137 -0
  250. plato_learn-1.1/examples/gradient_leakage_attacks/untrained_eval_delta.yml +137 -0
  251. plato_learn-1.1/examples/gradient_leakage_attacks/untrained_train.yml +137 -0
  252. plato_learn-1.1/examples/gradient_leakage_attacks/untrained_train_delta.yml +137 -0
  253. plato_learn-1.1/examples/gradient_leakage_attacks/utils/consts.py +14 -0
  254. plato_learn-1.1/examples/gradient_leakage_attacks/utils/evaluations.py +131 -0
  255. plato_learn-1.1/examples/gradient_leakage_attacks/utils/helpers.py +24 -0
  256. plato_learn-1.1/examples/gradient_leakage_attacks/utils/modules.py +132 -0
  257. plato_learn-1.1/examples/lora/README.md +36 -0
  258. plato_learn-1.1/examples/lora/client.yml +69 -0
  259. plato_learn-1.1/examples/lora/fedavg_opt.yml +73 -0
  260. plato_learn-1.1/examples/lora/lora.py +22 -0
  261. plato_learn-1.1/examples/lora/lora_client.py +38 -0
  262. plato_learn-1.1/examples/lora/lora_server.py +43 -0
  263. plato_learn-1.1/examples/lora/lora_utils.py +180 -0
  264. plato_learn-1.1/examples/lora/server.yml +76 -0
  265. plato_learn-1.1/examples/model_pruning/fedscr/fedscr.py +24 -0
  266. plato_learn-1.1/examples/model_pruning/fedscr/fedscr_MNIST_lenet5.yml +97 -0
  267. plato_learn-1.1/examples/model_pruning/fedscr/fedscr_client.py +39 -0
  268. plato_learn-1.1/examples/model_pruning/fedscr/fedscr_server.py +116 -0
  269. plato_learn-1.1/examples/model_pruning/fedscr/fedscr_trainer.py +256 -0
  270. plato_learn-1.1/examples/model_pruning/sub_fedavg/subcs.py +24 -0
  271. plato_learn-1.1/examples/model_pruning/sub_fedavg/subcs_MNIST_lenet5.yml +98 -0
  272. plato_learn-1.1/examples/model_pruning/sub_fedavg/subfedavg.py +27 -0
  273. plato_learn-1.1/examples/model_pruning/sub_fedavg/subfedavg_MNIST_lenet5.yml +82 -0
  274. plato_learn-1.1/examples/model_pruning/sub_fedavg/subfedavg_client.py +23 -0
  275. plato_learn-1.1/examples/model_pruning/sub_fedavg/subfedavg_pruning.py +124 -0
  276. plato_learn-1.1/examples/model_pruning/sub_fedavg/subfedavg_trainer.py +201 -0
  277. plato_learn-1.1/examples/model_search/anycostfl/anycostfl.py +32 -0
  278. plato_learn-1.1/examples/model_search/anycostfl/anycostfl_algorithm.py +205 -0
  279. plato_learn-1.1/examples/model_search/anycostfl/anycostfl_client.py +17 -0
  280. plato_learn-1.1/examples/model_search/anycostfl/anycostfl_server.py +57 -0
  281. plato_learn-1.1/examples/model_search/anycostfl/anycostfl_trainer.py +14 -0
  282. plato_learn-1.1/examples/model_search/anycostfl/example_ResNet.yml +92 -0
  283. plato_learn-1.1/examples/model_search/anycostfl/example_ViT.yml +98 -0
  284. plato_learn-1.1/examples/model_search/anycostfl/resnet.py +266 -0
  285. plato_learn-1.1/examples/model_search/anycostfl/vit.py +259 -0
  286. plato_learn-1.1/examples/model_search/fedrlnas/Darts/__init__.py +0 -0
  287. plato_learn-1.1/examples/model_search/fedrlnas/Darts/architect.py +173 -0
  288. plato_learn-1.1/examples/model_search/fedrlnas/Darts/genotypes.py +1675 -0
  289. plato_learn-1.1/examples/model_search/fedrlnas/Darts/model_search.py +153 -0
  290. plato_learn-1.1/examples/model_search/fedrlnas/Darts/model_search_local.py +187 -0
  291. plato_learn-1.1/examples/model_search/fedrlnas/Darts/operations.py +147 -0
  292. plato_learn-1.1/examples/model_search/fedrlnas/Darts/stale.py +48 -0
  293. plato_learn-1.1/examples/model_search/fedrlnas/Darts/utils.py +136 -0
  294. plato_learn-1.1/examples/model_search/fedrlnas/FedRLNAS_MNIST_DARTS.yml +76 -0
  295. plato_learn-1.1/examples/model_search/fedrlnas/fedrlnas.py +36 -0
  296. plato_learn-1.1/examples/model_search/fedrlnas/fedrlnas_algorithm.py +109 -0
  297. plato_learn-1.1/examples/model_search/fedrlnas/fedrlnas_client.py +33 -0
  298. plato_learn-1.1/examples/model_search/fedrlnas/fedrlnas_server.py +69 -0
  299. plato_learn-1.1/examples/model_search/fedrlnas/fedrlnas_tools.py +156 -0
  300. plato_learn-1.1/examples/model_search/fedrolex/example_ResNet.yml +92 -0
  301. plato_learn-1.1/examples/model_search/fedrolex/example_ViT.yml +98 -0
  302. plato_learn-1.1/examples/model_search/fedrolex/fedrolex.py +32 -0
  303. plato_learn-1.1/examples/model_search/fedrolex/fedrolex_algorithm.py +204 -0
  304. plato_learn-1.1/examples/model_search/fedrolex/fedrolex_client.py +17 -0
  305. plato_learn-1.1/examples/model_search/fedrolex/fedrolex_server.py +57 -0
  306. plato_learn-1.1/examples/model_search/fedrolex/fedrolex_trainer.py +14 -0
  307. plato_learn-1.1/examples/model_search/fedrolex/pyproject.toml +9 -0
  308. plato_learn-1.1/examples/model_search/fedrolex/resnet.py +266 -0
  309. plato_learn-1.1/examples/model_search/fedrolex/vit.py +259 -0
  310. plato_learn-1.1/examples/model_search/fedtp/FedTP_CIFAR10_T2TVIT14_NonIID03_scratch.yml +202 -0
  311. plato_learn-1.1/examples/model_search/fedtp/FedTP_CIFAR10_ViT_NonIID03_scratch.yml +207 -0
  312. plato_learn-1.1/examples/model_search/fedtp/fedtp.py +30 -0
  313. plato_learn-1.1/examples/model_search/fedtp/fedtp_algorithm.py +50 -0
  314. plato_learn-1.1/examples/model_search/fedtp/fedtp_server.py +115 -0
  315. plato_learn-1.1/examples/model_search/fedtp/hypernetworks.py +213 -0
  316. plato_learn-1.1/examples/model_search/heterofl/heterofl.py +34 -0
  317. plato_learn-1.1/examples/model_search/heterofl/heterofl_algorithm.py +153 -0
  318. plato_learn-1.1/examples/model_search/heterofl/heterofl_client.py +17 -0
  319. plato_learn-1.1/examples/model_search/heterofl/heterofl_resnet18_dynamic.yml +93 -0
  320. plato_learn-1.1/examples/model_search/heterofl/heterofl_server.py +70 -0
  321. plato_learn-1.1/examples/model_search/heterofl/heterofl_trainer.py +15 -0
  322. plato_learn-1.1/examples/model_search/heterofl/mobilenetv3.py +543 -0
  323. plato_learn-1.1/examples/model_search/heterofl/pyproject.toml +9 -0
  324. plato_learn-1.1/examples/model_search/heterofl/resnet.py +266 -0
  325. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/__init__.py +0 -0
  326. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/architect.py +227 -0
  327. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/genotypes.py +1675 -0
  328. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/model_search.py +153 -0
  329. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/model_search_local.py +187 -0
  330. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/operations.py +147 -0
  331. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/stale.py +48 -0
  332. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/Darts/utils.py +136 -0
  333. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/fednas.py +28 -0
  334. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/fednas_algorithm.py +104 -0
  335. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/fednas_client.py +27 -0
  336. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/fednas_server.py +103 -0
  337. plato_learn-1.1/examples/model_search/pfedrlnas/DARTS/fednas_tools.py +149 -0
  338. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fednas.py +37 -0
  339. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fednas_algorithm.py +128 -0
  340. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fednas_client.py +42 -0
  341. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fednas_server.py +377 -0
  342. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fednas_specific.py +72 -0
  343. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fednas_trainer.py +268 -0
  344. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/fedtools.py +145 -0
  345. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/model/__init__.py +0 -0
  346. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/model/architect.py +68 -0
  347. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/model/config.py +154 -0
  348. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/model/mobilenetv3_supernet.py +211 -0
  349. plato_learn-1.1/examples/model_search/pfedrlnas/MobileNetV3/pyproject.toml +9 -0
  350. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fednas.py +40 -0
  351. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fednas_algorithm.py +102 -0
  352. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fednas_client.py +17 -0
  353. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fednas_server.py +94 -0
  354. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fednas_trainer.py +25 -0
  355. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fednasvit_specific.py +71 -0
  356. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/fedtools.py +104 -0
  357. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/CODE_OF_CONDUCT.md +80 -0
  358. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/CONTRIBUTING.md +31 -0
  359. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/LICENSE +399 -0
  360. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/README.md +30 -0
  361. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/config.py +237 -0
  362. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/configs/cfg.yaml +20 -0
  363. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/logger.py +48 -0
  364. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/loss_ops.py +553 -0
  365. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/lr_scheduler.py +114 -0
  366. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/main.py +560 -0
  367. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/attentive_nas_eval.py +143 -0
  368. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/comm.py +73 -0
  369. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/config.py +322 -0
  370. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/constrain_opt.py +117 -0
  371. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/flops_counter.py +110 -0
  372. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/imagenet_eval.py +94 -0
  373. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/logger.py +91 -0
  374. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/loss_ops.py +496 -0
  375. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/lr_scheduler.py +108 -0
  376. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/optimizer.py +73 -0
  377. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/progress.py +67 -0
  378. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/resnet.py +467 -0
  379. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/misc/utils.py +235 -0
  380. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/__init__.py +2 -0
  381. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/attentive_nas_dynamic_model.py +680 -0
  382. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/attentive_nas_static_model.py +101 -0
  383. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/model_factory.py +50 -0
  384. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/__init__.py +1 -0
  385. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/activations.py +53 -0
  386. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/dynamic_layers.py +516 -0
  387. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/dynamic_ops.py +303 -0
  388. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/nn_base.py +149 -0
  389. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/nn_utils.py +115 -0
  390. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/static_layers.py +442 -0
  391. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/models/modules/transformer.py +972 -0
  392. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/optimizer.py +71 -0
  393. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/NASViT/utils.py +144 -0
  394. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/architect.py +285 -0
  395. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/attentive_nas_dynamic_model.py +288 -0
  396. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/config.py +201 -0
  397. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/nasvit_wrapper/dynamic_layers.py +117 -0
  398. plato_learn-1.1/examples/model_search/pfedrlnas/VIT/pyproject.toml +9 -0
  399. plato_learn-1.1/examples/model_search/pfedrlnas/configs/MobileNetV3_CIFAR10_03.yml +107 -0
  400. plato_learn-1.1/examples/model_search/pfedrlnas/configs/MobileNetV3_CIFAR10_03_async.yml +132 -0
  401. plato_learn-1.1/examples/model_search/pfedrlnas/configs/PerFedRLNAS_CIFAR10_DARTS_NonIID_03.yml +93 -0
  402. plato_learn-1.1/examples/model_search/pfedrlnas/configs/PerFedRLNAS_CIFAR10_Mobilenet_NonIID03.yml +92 -0
  403. plato_learn-1.1/examples/model_search/pfedrlnas/configs/PerFedRLNAS_CIFAR10_NASVIT_NonIID01.yml +101 -0
  404. plato_learn-1.1/examples/model_search/sysheterofl/config_ResNet152.yml +101 -0
  405. plato_learn-1.1/examples/model_search/sysheterofl/resnet.py +333 -0
  406. plato_learn-1.1/examples/model_search/sysheterofl/sysheterofl.py +22 -0
  407. plato_learn-1.1/examples/model_search/sysheterofl/sysheterofl_algorithm.py +278 -0
  408. plato_learn-1.1/examples/model_search/sysheterofl/sysheterofl_client.py +17 -0
  409. plato_learn-1.1/examples/model_search/sysheterofl/sysheterofl_server.py +65 -0
  410. plato_learn-1.1/examples/model_search/sysheterofl/sysheterofl_trainer.py +16 -0
  411. plato_learn-1.1/examples/outdated/adaptive_freezing/adaptive_freezing.py +31 -0
  412. plato_learn-1.1/examples/outdated/adaptive_freezing/adaptive_freezing_CIFAR10_resnet18.yml +62 -0
  413. plato_learn-1.1/examples/outdated/adaptive_freezing/adaptive_freezing_MNIST_lenet5.yml +58 -0
  414. plato_learn-1.1/examples/outdated/adaptive_freezing/adaptive_freezing_algorithm.py +204 -0
  415. plato_learn-1.1/examples/outdated/adaptive_freezing/adaptive_freezing_client.py +28 -0
  416. plato_learn-1.1/examples/outdated/adaptive_freezing/papers/adaptive_freezing.pdf +0 -0
  417. plato_learn-1.1/examples/outdated/adaptive_hgb/adaptive_hgb.py +59 -0
  418. plato_learn-1.1/examples/outdated/adaptive_hgb/adaptive_hgb_client.py +270 -0
  419. plato_learn-1.1/examples/outdated/adaptive_hgb/adaptive_hgb_server.py +41 -0
  420. plato_learn-1.1/examples/outdated/adaptive_hgb/adaptive_hgb_trainer.py +398 -0
  421. plato_learn-1.1/examples/outdated/adaptive_hgb/documents/RawDatas.zip +0 -0
  422. plato_learn-1.1/examples/outdated/adaptive_hgb/tests/sampler_config.yml +70 -0
  423. plato_learn-1.1/examples/outdated/adaptive_hgb/tests/test_disnoniid_sampler.py +59 -0
  424. plato_learn-1.1/examples/outdated/adaptive_hgb/tests/test_dynamic_multimodal.py +110 -0
  425. plato_learn-1.1/examples/outdated/adaptive_hgb/tests/test_mm_data_provide.py +61 -0
  426. plato_learn-1.1/examples/outdated/adaptive_hgb/tests/test_quantity_labelnoniid_sampler.py +60 -0
  427. plato_learn-1.1/examples/outdated/adaptive_hgb/tests/utils.py +163 -0
  428. plato_learn-1.1/examples/outdated/adaptive_sync/adaptive_sync.py +25 -0
  429. plato_learn-1.1/examples/outdated/adaptive_sync/adaptive_sync_MNIST_lenet5.yml +56 -0
  430. plato_learn-1.1/examples/outdated/adaptive_sync/adaptive_sync_algorithm.py +167 -0
  431. plato_learn-1.1/examples/outdated/adaptive_sync/adaptive_sync_client.py +25 -0
  432. plato_learn-1.1/examples/outdated/adaptive_sync/papers/adaptive_sync.pdf +0 -0
  433. plato_learn-1.1/examples/outdated/attack_adaptive/attack-adaptive_MNIST_lenet5.yml +63 -0
  434. plato_learn-1.1/examples/outdated/attack_adaptive/attack_adaptive.py +26 -0
  435. plato_learn-1.1/examples/outdated/attack_adaptive/attack_adaptive_server.py +58 -0
  436. plato_learn-1.1/examples/outdated/cs_maml/cs_maml.py +28 -0
  437. plato_learn-1.1/examples/outdated/cs_maml/cs_maml_MNIST_lenet5.yml +79 -0
  438. plato_learn-1.1/examples/outdated/cs_maml/cs_maml_edge.py +69 -0
  439. plato_learn-1.1/examples/outdated/cs_maml/cs_maml_server.py +210 -0
  440. plato_learn-1.1/examples/outdated/dist_mistnet/custom_client.py +26 -0
  441. plato_learn-1.1/examples/outdated/dist_mistnet/custom_server.py +14 -0
  442. plato_learn-1.1/examples/outdated/dist_mistnet/mistnet_lenet5_client.yml +65 -0
  443. plato_learn-1.1/examples/outdated/dist_mistnet/mistnet_lenet5_server.yml +65 -0
  444. plato_learn-1.1/examples/outdated/fedcm/fedcm.py +23 -0
  445. plato_learn-1.1/examples/outdated/fedcm/fedcm_algorithm.py +17 -0
  446. plato_learn-1.1/examples/outdated/fedcm/fedcm_cifar10_resnet18.yml +63 -0
  447. plato_learn-1.1/examples/outdated/fedcm/fedcm_client.py +23 -0
  448. plato_learn-1.1/examples/outdated/fedcm/fedcm_server.py +47 -0
  449. plato_learn-1.1/examples/outdated/fedcm/fedcm_trainer.py +125 -0
  450. plato_learn-1.1/examples/outdated/fednova/fednova.py +24 -0
  451. plato_learn-1.1/examples/outdated/fednova/fednova_MNIST_lenet5.yml +64 -0
  452. plato_learn-1.1/examples/outdated/fednova/fednova_client.py +63 -0
  453. plato_learn-1.1/examples/outdated/fednova/fednova_server.py +50 -0
  454. plato_learn-1.1/examples/outdated/fedreId/fedreId.py +90 -0
  455. plato_learn-1.1/examples/outdated/fedreId/fedreId_client.py +71 -0
  456. plato_learn-1.1/examples/outdated/fedreId/fedreId_server.py +63 -0
  457. plato_learn-1.1/examples/outdated/fedrep/fedrep.py +31 -0
  458. plato_learn-1.1/examples/outdated/fedrep/fedrep_CIFAR10_resnet18.yml +76 -0
  459. plato_learn-1.1/examples/outdated/fedrep/fedrep_CIFAR10_resnet18_label_quantity_nonIID.yml +77 -0
  460. plato_learn-1.1/examples/outdated/fedrep/fedrep_CIFAR10_vgg16.yml +76 -0
  461. plato_learn-1.1/examples/outdated/fedrep/fedrep_MNIST_lenet5.yml +76 -0
  462. plato_learn-1.1/examples/outdated/fedrep/fedrep_algorithm.py +59 -0
  463. plato_learn-1.1/examples/outdated/fedrep/fedrep_client.py +58 -0
  464. plato_learn-1.1/examples/outdated/fedrep/fedrep_server.py +88 -0
  465. plato_learn-1.1/examples/outdated/fedrep/fedrep_trainer.py +89 -0
  466. plato_learn-1.1/examples/outdated/fedsarah/fedsarah.py +24 -0
  467. plato_learn-1.1/examples/outdated/fedsarah/fedsarah_MNIST_lenet5.yml +51 -0
  468. plato_learn-1.1/examples/outdated/fedsarah/fedsarah_client.py +65 -0
  469. plato_learn-1.1/examples/outdated/fedsarah/fedsarah_optimizer.py +76 -0
  470. plato_learn-1.1/examples/outdated/fedsarah/fedsarah_server.py +48 -0
  471. plato_learn-1.1/examples/outdated/fedsarah/fedsarah_trainer.py +49 -0
  472. plato_learn-1.1/examples/outdated/fei/fei.py +22 -0
  473. plato_learn-1.1/examples/outdated/fei/fei_CIFAR10_resnet18.yml +143 -0
  474. plato_learn-1.1/examples/outdated/fei/fei_FashionMNIST_lenet5.yml +141 -0
  475. plato_learn-1.1/examples/outdated/fei/fei_agent.py +240 -0
  476. plato_learn-1.1/examples/outdated/fei/fei_client.py +33 -0
  477. plato_learn-1.1/examples/outdated/fei/fei_server.py +95 -0
  478. plato_learn-1.1/examples/outdated/fl_maml/fl_maml.py +25 -0
  479. plato_learn-1.1/examples/outdated/fl_maml/fl_maml_MNIST_lenet5.yml +67 -0
  480. plato_learn-1.1/examples/outdated/fl_maml/fl_maml_client.py +88 -0
  481. plato_learn-1.1/examples/outdated/fl_maml/fl_maml_server.py +158 -0
  482. plato_learn-1.1/examples/outdated/fl_maml/fl_maml_trainer.py +301 -0
  483. plato_learn-1.1/examples/outdated/mistnetplus/mistnet_lenet5_client.yml +74 -0
  484. plato_learn-1.1/examples/outdated/mistnetplus/mistnet_lenet5_server.yml +74 -0
  485. plato_learn-1.1/examples/outdated/mistnetplus/mistnetplus_algorithm.py +24 -0
  486. plato_learn-1.1/examples/outdated/mistnetplus/mistnetplus_client.py +79 -0
  487. plato_learn-1.1/examples/outdated/mistnetplus/mistnetplus_server.py +129 -0
  488. plato_learn-1.1/examples/outdated/mistnetplus/split_learning_algorithm.py +155 -0
  489. plato_learn-1.1/examples/outdated/mistnetplus/split_learning_trainer.py +77 -0
  490. plato_learn-1.1/examples/outdated/model_search/fjord/fjord.py +35 -0
  491. plato_learn-1.1/examples/outdated/model_search/fjord/fjord_algorithm.py +142 -0
  492. plato_learn-1.1/examples/outdated/model_search/fjord/fjord_client.py +18 -0
  493. plato_learn-1.1/examples/outdated/model_search/fjord/fjord_resnet18_dynamic.yml +93 -0
  494. plato_learn-1.1/examples/outdated/model_search/fjord/fjord_server.py +52 -0
  495. plato_learn-1.1/examples/outdated/model_search/fjord/fjord_trainer.py +70 -0
  496. plato_learn-1.1/examples/outdated/model_search/fjord/resnet.py +236 -0
  497. plato_learn-1.1/examples/outdated/model_search/fjord/vit.py +259 -0
  498. plato_learn-1.1/examples/outdated/multimodal_fedavg/multi_modal_fedavg.py +49 -0
  499. plato_learn-1.1/examples/outdated/norm_bounding/norm_bounding.py +20 -0
  500. plato_learn-1.1/examples/outdated/norm_bounding/norm_bounding_MNIST_lenet5.yml +64 -0
  501. plato_learn-1.1/examples/outdated/norm_bounding/norm_bounding_server.py +54 -0
  502. plato_learn-1.1/examples/personalized_fl/apfl/apfl.py +31 -0
  503. plato_learn-1.1/examples/personalized_fl/apfl/apfl_trainer.py +123 -0
  504. plato_learn-1.1/examples/personalized_fl/configs/apfl_CIFAR10_resnet18.yml +52 -0
  505. plato_learn-1.1/examples/personalized_fl/configs/basic_resnet18.yml +20 -0
  506. plato_learn-1.1/examples/personalized_fl/configs/cifar10_noniid.yml +13 -0
  507. plato_learn-1.1/examples/personalized_fl/configs/ditto_CIFAR10_resnet18.yml +57 -0
  508. plato_learn-1.1/examples/personalized_fl/configs/fedavg_finetune_CIFAR10_resnet18.yml +49 -0
  509. plato_learn-1.1/examples/personalized_fl/configs/fedbabu_CIFAR10_resnet18.yml +63 -0
  510. plato_learn-1.1/examples/personalized_fl/configs/fedper_CIFAR10_resnet18.yml +62 -0
  511. plato_learn-1.1/examples/personalized_fl/configs/fedrep_CIFAR10_resnet18.yml +60 -0
  512. plato_learn-1.1/examples/personalized_fl/configs/hermes_CIFAR10_resnet18.yml +72 -0
  513. plato_learn-1.1/examples/personalized_fl/configs/lgfedavg_CIFAR10_resnet18.yml +64 -0
  514. plato_learn-1.1/examples/personalized_fl/configs/perfedavg_CIFAR10_resnet18.yml +52 -0
  515. plato_learn-1.1/examples/personalized_fl/configs/resnet18_params.yml +11 -0
  516. plato_learn-1.1/examples/personalized_fl/ditto/ditto.py +30 -0
  517. plato_learn-1.1/examples/personalized_fl/ditto/ditto_trainer.py +122 -0
  518. plato_learn-1.1/examples/personalized_fl/fedavg_finetune/fedavg_finetune.py +26 -0
  519. plato_learn-1.1/examples/personalized_fl/fedbabu/fedbabu.py +30 -0
  520. plato_learn-1.1/examples/personalized_fl/fedbabu/fedbabu_trainer.py +40 -0
  521. plato_learn-1.1/examples/personalized_fl/fedper/fedper.py +29 -0
  522. plato_learn-1.1/examples/personalized_fl/fedper/fedper_trainer.py +31 -0
  523. plato_learn-1.1/examples/personalized_fl/fedrep/fedrep.py +32 -0
  524. plato_learn-1.1/examples/personalized_fl/fedrep/fedrep_trainer.py +84 -0
  525. plato_learn-1.1/examples/personalized_fl/hermes/hermes.py +29 -0
  526. plato_learn-1.1/examples/personalized_fl/hermes/hermes_callback.py +31 -0
  527. plato_learn-1.1/examples/personalized_fl/hermes/hermes_processor.py +51 -0
  528. plato_learn-1.1/examples/personalized_fl/hermes/hermes_pruning.py +123 -0
  529. plato_learn-1.1/examples/personalized_fl/hermes/hermes_server.py +127 -0
  530. plato_learn-1.1/examples/personalized_fl/hermes/hermes_trainer.py +128 -0
  531. plato_learn-1.1/examples/personalized_fl/lgfedavg/lgfedavg.py +30 -0
  532. plato_learn-1.1/examples/personalized_fl/lgfedavg/lgfedavg_trainer.py +33 -0
  533. plato_learn-1.1/examples/personalized_fl/perfedavg/perfedavg.py +31 -0
  534. plato_learn-1.1/examples/personalized_fl/perfedavg/perfedavg_trainer.py +66 -0
  535. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt.py +21 -0
  536. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_CIFAR10_resnet18.yml +66 -0
  537. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_MNIST_lenet5.yml +67 -0
  538. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_callbacks.py +68 -0
  539. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_client.py +122 -0
  540. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_server.py +72 -0
  541. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_trainer.py +89 -0
  542. plato_learn-1.1/examples/secure_aggregation/maskcrypt/maskcrypt_utils.py +50 -0
  543. plato_learn-1.1/examples/server_aggregation/fedadp/fedadp.py +22 -0
  544. plato_learn-1.1/examples/server_aggregation/fedadp/fedadp_FashionMNIST_lenet5.yml +109 -0
  545. plato_learn-1.1/examples/server_aggregation/fedadp/fedadp_server.py +139 -0
  546. plato_learn-1.1/examples/server_aggregation/fedatt/fedatt.py +25 -0
  547. plato_learn-1.1/examples/server_aggregation/fedatt/fedatt_FashionMNIST_lenet5.yml +115 -0
  548. plato_learn-1.1/examples/server_aggregation/fedatt/fedatt_algorithm.py +71 -0
  549. plato_learn-1.1/examples/server_aggregation/fedatt/fedatt_server.py +24 -0
  550. plato_learn-1.1/examples/split_learning/llm_split_learning/pyproject.toml +10 -0
  551. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_llm_model.py +195 -0
  552. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_llm_model_attack.py +75 -0
  553. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_lora_algorithm.py +26 -0
  554. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_main.py +29 -0
  555. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_main_attack.py +37 -0
  556. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_server_attack.py +101 -0
  557. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_trainer.py +171 -0
  558. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_trainer_attack.py +162 -0
  559. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_wikitext2_gpt2.yml +78 -0
  560. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_wikitext2_gpt2_attack.yml +90 -0
  561. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_wikitext2_gpt2_lora.yml +89 -0
  562. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_wikitext2_llama2.yml +80 -0
  563. plato_learn-1.1/examples/split_learning/llm_split_learning/split_learning_wikitext2_opt350m.yml +78 -0
  564. plato_learn-1.1/examples/ssl/byol/byol.py +34 -0
  565. plato_learn-1.1/examples/ssl/byol/byol_model.py +77 -0
  566. plato_learn-1.1/examples/ssl/byol/byol_trainer.py +71 -0
  567. plato_learn-1.1/examples/ssl/calibre/calibre.py +35 -0
  568. plato_learn-1.1/examples/ssl/calibre/calibre_callback.py +26 -0
  569. plato_learn-1.1/examples/ssl/calibre/calibre_loss.py +212 -0
  570. plato_learn-1.1/examples/ssl/calibre/calibre_model.py +54 -0
  571. plato_learn-1.1/examples/ssl/calibre/calibre_processor.py +39 -0
  572. plato_learn-1.1/examples/ssl/calibre/calibre_server.py +57 -0
  573. plato_learn-1.1/examples/ssl/calibre/calibre_trainer.py +140 -0
  574. plato_learn-1.1/examples/ssl/calibre/clustering.py +29 -0
  575. plato_learn-1.1/examples/ssl/calibre/prototype_loss.py +61 -0
  576. plato_learn-1.1/examples/ssl/calibre/pyproject.toml +9 -0
  577. plato_learn-1.1/examples/ssl/configs/byol_CIFAR10_resnet18.yml +96 -0
  578. plato_learn-1.1/examples/ssl/configs/calibre_CIFAR10_resnet18.yml +104 -0
  579. plato_learn-1.1/examples/ssl/configs/cifar10_ssl_noniid.yml +19 -0
  580. plato_learn-1.1/examples/ssl/configs/fedema_CIFAR10_resnet18.yml +106 -0
  581. plato_learn-1.1/examples/ssl/configs/mocov2_CIFAR10_resnet18.yml +98 -0
  582. plato_learn-1.1/examples/ssl/configs/resnet18_pers_params.yml +19 -0
  583. plato_learn-1.1/examples/ssl/configs/simclr_CIFAR10_resnet18.yml +96 -0
  584. plato_learn-1.1/examples/ssl/configs/simsiam_CIFAR10_resnet18.yml +98 -0
  585. plato_learn-1.1/examples/ssl/configs/smog_CIFAR10_resnet18.yml +104 -0
  586. plato_learn-1.1/examples/ssl/configs/ssl_personalization.yml +17 -0
  587. plato_learn-1.1/examples/ssl/configs/swav_CIFAR10_resnet18.yml +94 -0
  588. plato_learn-1.1/examples/ssl/fedema/fedema.py +39 -0
  589. plato_learn-1.1/examples/ssl/fedema/fedema_callback.py +24 -0
  590. plato_learn-1.1/examples/ssl/fedema/fedema_model.py +78 -0
  591. plato_learn-1.1/examples/ssl/fedema/fedema_processor.py +69 -0
  592. plato_learn-1.1/examples/ssl/fedema/fedema_server.py +106 -0
  593. plato_learn-1.1/examples/ssl/fedema/fedema_trainer.py +70 -0
  594. plato_learn-1.1/examples/ssl/fedema/utils.py +64 -0
  595. plato_learn-1.1/examples/ssl/moco/mocov2.py +40 -0
  596. plato_learn-1.1/examples/ssl/moco/mocov2_model.py +64 -0
  597. plato_learn-1.1/examples/ssl/moco/mocov2_trainer.py +52 -0
  598. plato_learn-1.1/examples/ssl/simclr/simclr.py +32 -0
  599. plato_learn-1.1/examples/ssl/simclr/simclr_model.py +45 -0
  600. plato_learn-1.1/examples/ssl/simsiam/simsiam.py +35 -0
  601. plato_learn-1.1/examples/ssl/simsiam/simsiam_model.py +56 -0
  602. plato_learn-1.1/examples/ssl/simsiam/simsiam_trainer.py +25 -0
  603. plato_learn-1.1/examples/ssl/smog/pyproject.toml +9 -0
  604. plato_learn-1.1/examples/ssl/smog/smog.py +35 -0
  605. plato_learn-1.1/examples/ssl/smog/smog_model.py +138 -0
  606. plato_learn-1.1/examples/ssl/smog/smog_trainer.py +120 -0
  607. plato_learn-1.1/examples/ssl/swav/swav.py +32 -0
  608. plato_learn-1.1/examples/ssl/swav/swav_model.py +61 -0
  609. plato_learn-1.1/examples/three_layer_fl/fedsaw/fedsaw.py +21 -0
  610. plato_learn-1.1/examples/three_layer_fl/fedsaw/fedsaw_MNIST_lenet5.yml +97 -0
  611. plato_learn-1.1/examples/three_layer_fl/fedsaw/fedsaw_client.py +86 -0
  612. plato_learn-1.1/examples/three_layer_fl/fedsaw/fedsaw_edge.py +88 -0
  613. plato_learn-1.1/examples/three_layer_fl/fedsaw/fedsaw_server.py +130 -0
  614. plato_learn-1.1/examples/three_layer_fl/tempo/tempo.py +20 -0
  615. plato_learn-1.1/examples/three_layer_fl/tempo/tempo_MNIST_lenet5.yml +83 -0
  616. plato_learn-1.1/examples/three_layer_fl/tempo/tempo_client.py +17 -0
  617. plato_learn-1.1/examples/three_layer_fl/tempo/tempo_edge.py +31 -0
  618. plato_learn-1.1/examples/three_layer_fl/tempo/tempo_server.py +127 -0
  619. plato_learn-1.1/examples/unlearning/fedunlearning/.gitignore +1 -0
  620. plato_learn-1.1/examples/unlearning/fedunlearning/fedunlearning.py +27 -0
  621. plato_learn-1.1/examples/unlearning/fedunlearning/fedunlearning_adahessian_MNIST_lenet5.yml +87 -0
  622. plato_learn-1.1/examples/unlearning/fedunlearning/fedunlearning_client.py +78 -0
  623. plato_learn-1.1/examples/unlearning/fedunlearning/fedunlearning_server.py +165 -0
  624. plato_learn-1.1/examples/unlearning/fedunlearning/lib_mia/__init__.py +19 -0
  625. plato_learn-1.1/examples/unlearning/fedunlearning/lib_mia/mia.py +126 -0
  626. plato_learn-1.1/examples/unlearning/fedunlearning/lib_mia/mia_client.py +43 -0
  627. plato_learn-1.1/examples/unlearning/fedunlearning/lib_mia/mia_server.py +112 -0
  628. plato_learn-1.1/examples/unlearning/fedunlearning/pyproject.toml +10 -0
  629. plato_learn-1.1/examples/unlearning/fedunlearning/unlearning_iid.py +65 -0
  630. plato_learn-1.1/examples/unlearning/knot/fedunlearning_server.py +145 -0
  631. plato_learn-1.1/examples/unlearning/knot/knot.py +23 -0
  632. plato_learn-1.1/examples/unlearning/knot/knot_algorithm.py +95 -0
  633. plato_learn-1.1/examples/unlearning/knot/knot_cifar10_resnet18.yml +131 -0
  634. plato_learn-1.1/examples/unlearning/knot/knot_client.py +37 -0
  635. plato_learn-1.1/examples/unlearning/knot/knot_huggingface.py +24 -0
  636. plato_learn-1.1/examples/unlearning/knot/knot_huggingface_trainer.py +54 -0
  637. plato_learn-1.1/examples/unlearning/knot/knot_mnist_lenet5.yml +137 -0
  638. plato_learn-1.1/examples/unlearning/knot/knot_purchase.yml +123 -0
  639. plato_learn-1.1/examples/unlearning/knot/knot_server.py +832 -0
  640. plato_learn-1.1/examples/unlearning/knot/knot_trainer.py +69 -0
  641. plato_learn-1.1/examples/unlearning/knot/pyproject.toml +10 -0
  642. plato_learn-1.1/examples/unlearning/knot/resnet18_params.yml +8 -0
  643. plato_learn-1.1/examples/unlearning/knot/solver.py +138 -0
  644. plato_learn-1.1/examples/unlearning/knot/unlearning_iid.py +57 -0
  645. plato_learn-1.1/plato/__init__.py +1 -0
  646. plato_learn-1.1/plato/algorithms/__init__.py +0 -0
  647. plato_learn-1.1/plato/algorithms/base.py +45 -0
  648. plato_learn-1.1/plato/algorithms/fedavg.py +48 -0
  649. plato_learn-1.1/plato/algorithms/fedavg_gan.py +79 -0
  650. plato_learn-1.1/plato/algorithms/fedavg_personalized.py +48 -0
  651. plato_learn-1.1/plato/algorithms/mistnet.py +52 -0
  652. plato_learn-1.1/plato/algorithms/registry.py +39 -0
  653. plato_learn-1.1/plato/algorithms/split_learning.py +89 -0
  654. plato_learn-1.1/plato/callbacks/__init__.py +0 -0
  655. plato_learn-1.1/plato/callbacks/client.py +56 -0
  656. plato_learn-1.1/plato/callbacks/handler.py +78 -0
  657. plato_learn-1.1/plato/callbacks/server.py +139 -0
  658. plato_learn-1.1/plato/callbacks/trainer.py +124 -0
  659. plato_learn-1.1/plato/client.py +67 -0
  660. plato_learn-1.1/plato/clients/__init__.py +0 -0
  661. plato_learn-1.1/plato/clients/base.py +467 -0
  662. plato_learn-1.1/plato/clients/edge.py +103 -0
  663. plato_learn-1.1/plato/clients/fedavg_personalized.py +40 -0
  664. plato_learn-1.1/plato/clients/mistnet.py +49 -0
  665. plato_learn-1.1/plato/clients/registry.py +43 -0
  666. plato_learn-1.1/plato/clients/self_supervised_learning.py +51 -0
  667. plato_learn-1.1/plato/clients/simple.py +218 -0
  668. plato_learn-1.1/plato/clients/split_learning.py +150 -0
  669. plato_learn-1.1/plato/config.py +339 -0
  670. plato_learn-1.1/plato/datasources/__init__.py +0 -0
  671. plato_learn-1.1/plato/datasources/base.py +123 -0
  672. plato_learn-1.1/plato/datasources/celeba.py +150 -0
  673. plato_learn-1.1/plato/datasources/cifar10.py +87 -0
  674. plato_learn-1.1/plato/datasources/cifar100.py +61 -0
  675. plato_learn-1.1/plato/datasources/cinic10.py +62 -0
  676. plato_learn-1.1/plato/datasources/coco.py +119 -0
  677. plato_learn-1.1/plato/datasources/datalib/__init__.py +0 -0
  678. plato_learn-1.1/plato/datasources/datalib/audio_extraction_tools.py +137 -0
  679. plato_learn-1.1/plato/datasources/datalib/data_utils.py +124 -0
  680. plato_learn-1.1/plato/datasources/datalib/flickr30kE_utils.py +336 -0
  681. plato_learn-1.1/plato/datasources/datalib/frames_extraction_tools.py +254 -0
  682. plato_learn-1.1/plato/datasources/datalib/gym_utils/__init__.py +0 -0
  683. plato_learn-1.1/plato/datasources/datalib/gym_utils/gym_trim.py +189 -0
  684. plato_learn-1.1/plato/datasources/datalib/modality_data_anntation_tools.py +163 -0
  685. plato_learn-1.1/plato/datasources/datalib/modality_extraction_base.py +59 -0
  686. plato_learn-1.1/plato/datasources/datalib/parse_datasets.py +212 -0
  687. plato_learn-1.1/plato/datasources/datalib/refer_utils/__init__.py +0 -0
  688. plato_learn-1.1/plato/datasources/datalib/refer_utils/referitgame_utils.py +237 -0
  689. plato_learn-1.1/plato/datasources/datalib/tiny_data_tools.py +81 -0
  690. plato_learn-1.1/plato/datasources/datalib/video_transform.py +79 -0
  691. plato_learn-1.1/plato/datasources/emnist.py +64 -0
  692. plato_learn-1.1/plato/datasources/fashion_mnist.py +41 -0
  693. plato_learn-1.1/plato/datasources/feature.py +24 -0
  694. plato_learn-1.1/plato/datasources/feature_dataset.py +15 -0
  695. plato_learn-1.1/plato/datasources/femnist.py +141 -0
  696. plato_learn-1.1/plato/datasources/flickr30k_entities.py +362 -0
  697. plato_learn-1.1/plato/datasources/gym.py +431 -0
  698. plato_learn-1.1/plato/datasources/huggingface.py +165 -0
  699. plato_learn-1.1/plato/datasources/kinetics.py +568 -0
  700. plato_learn-1.1/plato/datasources/mnist.py +44 -0
  701. plato_learn-1.1/plato/datasources/multimodal_base.py +328 -0
  702. plato_learn-1.1/plato/datasources/pascal_voc.py +56 -0
  703. plato_learn-1.1/plato/datasources/purchase.py +94 -0
  704. plato_learn-1.1/plato/datasources/qoenflx.py +127 -0
  705. plato_learn-1.1/plato/datasources/referitgame.py +330 -0
  706. plato_learn-1.1/plato/datasources/registry.py +119 -0
  707. plato_learn-1.1/plato/datasources/self_supervised_learning.py +98 -0
  708. plato_learn-1.1/plato/datasources/stl10.py +103 -0
  709. plato_learn-1.1/plato/datasources/texas.py +94 -0
  710. plato_learn-1.1/plato/datasources/tiny_imagenet.py +64 -0
  711. plato_learn-1.1/plato/datasources/yolov8.py +85 -0
  712. plato_learn-1.1/plato/models/__init__.py +0 -0
  713. plato_learn-1.1/plato/models/cnn_encoder.py +103 -0
  714. plato_learn-1.1/plato/models/dcgan.py +116 -0
  715. plato_learn-1.1/plato/models/general_multilayer.py +254 -0
  716. plato_learn-1.1/plato/models/huggingface.py +27 -0
  717. plato_learn-1.1/plato/models/lenet5.py +113 -0
  718. plato_learn-1.1/plato/models/multilayer.py +90 -0
  719. plato_learn-1.1/plato/models/multimodal/__init__.py +0 -0
  720. plato_learn-1.1/plato/models/multimodal/base_net.py +91 -0
  721. plato_learn-1.1/plato/models/multimodal/blending.py +142 -0
  722. plato_learn-1.1/plato/models/multimodal/fc_net.py +77 -0
  723. plato_learn-1.1/plato/models/multimodal/fusion_net.py +78 -0
  724. plato_learn-1.1/plato/models/multimodal/multimodal_module.py +152 -0
  725. plato_learn-1.1/plato/models/registry.py +99 -0
  726. plato_learn-1.1/plato/models/resnet.py +190 -0
  727. plato_learn-1.1/plato/models/torch_hub.py +19 -0
  728. plato_learn-1.1/plato/models/vgg.py +113 -0
  729. plato_learn-1.1/plato/models/vit.py +166 -0
  730. plato_learn-1.1/plato/models/yolov8.py +22 -0
  731. plato_learn-1.1/plato/processors/__init__.py +0 -0
  732. plato_learn-1.1/plato/processors/base.py +35 -0
  733. plato_learn-1.1/plato/processors/compress.py +46 -0
  734. plato_learn-1.1/plato/processors/decompress.py +48 -0
  735. plato_learn-1.1/plato/processors/feature.py +51 -0
  736. plato_learn-1.1/plato/processors/feature_additive_noise.py +48 -0
  737. plato_learn-1.1/plato/processors/feature_dequantize.py +34 -0
  738. plato_learn-1.1/plato/processors/feature_gaussian.py +17 -0
  739. plato_learn-1.1/plato/processors/feature_laplace.py +15 -0
  740. plato_learn-1.1/plato/processors/feature_quantize.py +34 -0
  741. plato_learn-1.1/plato/processors/feature_randomized_response.py +50 -0
  742. plato_learn-1.1/plato/processors/feature_unbatch.py +39 -0
  743. plato_learn-1.1/plato/processors/inbound_feature_tensors.py +39 -0
  744. plato_learn-1.1/plato/processors/model.py +55 -0
  745. plato_learn-1.1/plato/processors/model_compress.py +34 -0
  746. plato_learn-1.1/plato/processors/model_decompress.py +37 -0
  747. plato_learn-1.1/plato/processors/model_decrypt.py +41 -0
  748. plato_learn-1.1/plato/processors/model_deepcopy.py +21 -0
  749. plato_learn-1.1/plato/processors/model_dequantize.py +18 -0
  750. plato_learn-1.1/plato/processors/model_dequantize_qsgd.py +61 -0
  751. plato_learn-1.1/plato/processors/model_encrypt.py +43 -0
  752. plato_learn-1.1/plato/processors/model_quantize.py +18 -0
  753. plato_learn-1.1/plato/processors/model_quantize_qsgd.py +82 -0
  754. plato_learn-1.1/plato/processors/model_randomized_response.py +34 -0
  755. plato_learn-1.1/plato/processors/outbound_feature_ndarrays.py +38 -0
  756. plato_learn-1.1/plato/processors/pipeline.py +26 -0
  757. plato_learn-1.1/plato/processors/registry.py +124 -0
  758. plato_learn-1.1/plato/processors/structured_pruning.py +57 -0
  759. plato_learn-1.1/plato/processors/unstructured_pruning.py +73 -0
  760. plato_learn-1.1/plato/samplers/__init__.py +0 -0
  761. plato_learn-1.1/plato/samplers/all_inclusive.py +41 -0
  762. plato_learn-1.1/plato/samplers/base.py +31 -0
  763. plato_learn-1.1/plato/samplers/dirichlet.py +81 -0
  764. plato_learn-1.1/plato/samplers/distribution_noniid.py +132 -0
  765. plato_learn-1.1/plato/samplers/iid.py +53 -0
  766. plato_learn-1.1/plato/samplers/label_quantity_noniid.py +119 -0
  767. plato_learn-1.1/plato/samplers/mixed.py +44 -0
  768. plato_learn-1.1/plato/samplers/mixed_label_quantity_noniid.py +128 -0
  769. plato_learn-1.1/plato/samplers/modality_iid.py +42 -0
  770. plato_learn-1.1/plato/samplers/modality_quantity_noniid.py +56 -0
  771. plato_learn-1.1/plato/samplers/orthogonal.py +99 -0
  772. plato_learn-1.1/plato/samplers/registry.py +66 -0
  773. plato_learn-1.1/plato/samplers/sample_quantity_noniid.py +123 -0
  774. plato_learn-1.1/plato/samplers/sampler_utils.py +190 -0
  775. plato_learn-1.1/plato/servers/__init__.py +0 -0
  776. plato_learn-1.1/plato/servers/base.py +1395 -0
  777. plato_learn-1.1/plato/servers/fedavg.py +281 -0
  778. plato_learn-1.1/plato/servers/fedavg_cs.py +335 -0
  779. plato_learn-1.1/plato/servers/fedavg_gan.py +74 -0
  780. plato_learn-1.1/plato/servers/fedavg_he.py +106 -0
  781. plato_learn-1.1/plato/servers/fedavg_personalized.py +57 -0
  782. plato_learn-1.1/plato/servers/mistnet.py +67 -0
  783. plato_learn-1.1/plato/servers/registry.py +52 -0
  784. plato_learn-1.1/plato/servers/split_learning.py +109 -0
  785. plato_learn-1.1/plato/trainers/__init__.py +0 -0
  786. plato_learn-1.1/plato/trainers/base.py +99 -0
  787. plato_learn-1.1/plato/trainers/basic.py +649 -0
  788. plato_learn-1.1/plato/trainers/diff_privacy.py +178 -0
  789. plato_learn-1.1/plato/trainers/gan.py +330 -0
  790. plato_learn-1.1/plato/trainers/huggingface.py +173 -0
  791. plato_learn-1.1/plato/trainers/loss_criterion.py +70 -0
  792. plato_learn-1.1/plato/trainers/lr_schedulers.py +252 -0
  793. plato_learn-1.1/plato/trainers/optimizers.py +53 -0
  794. plato_learn-1.1/plato/trainers/pascal_voc.py +80 -0
  795. plato_learn-1.1/plato/trainers/registry.py +44 -0
  796. plato_learn-1.1/plato/trainers/self_supervised_learning.py +302 -0
  797. plato_learn-1.1/plato/trainers/split_learning.py +305 -0
  798. plato_learn-1.1/plato/trainers/tracking.py +96 -0
  799. plato_learn-1.1/plato/trainers/yolov8.py +41 -0
  800. plato_learn-1.1/plato/utils/__init__.py +0 -0
  801. plato_learn-1.1/plato/utils/count_parameters.py +30 -0
  802. plato_learn-1.1/plato/utils/csv_processor.py +26 -0
  803. plato_learn-1.1/plato/utils/data_loaders.py +148 -0
  804. plato_learn-1.1/plato/utils/decorators.py +24 -0
  805. plato_learn-1.1/plato/utils/fonts.py +23 -0
  806. plato_learn-1.1/plato/utils/homo_enc.py +187 -0
  807. plato_learn-1.1/plato/utils/reinforcement_learning/__init__.py +0 -0
  808. plato_learn-1.1/plato/utils/reinforcement_learning/policies/__init__.py +0 -0
  809. plato_learn-1.1/plato/utils/reinforcement_learning/policies/base.py +161 -0
  810. plato_learn-1.1/plato/utils/reinforcement_learning/policies/ddpg.py +75 -0
  811. plato_learn-1.1/plato/utils/reinforcement_learning/policies/registry.py +32 -0
  812. plato_learn-1.1/plato/utils/reinforcement_learning/policies/sac.py +343 -0
  813. plato_learn-1.1/plato/utils/reinforcement_learning/policies/td3.py +485 -0
  814. plato_learn-1.1/plato/utils/reinforcement_learning/rl_agent.py +142 -0
  815. plato_learn-1.1/plato/utils/reinforcement_learning/rl_server.py +113 -0
  816. plato_learn-1.1/plato/utils/rl_env.py +154 -0
  817. plato_learn-1.1/plato/utils/s3.py +141 -0
  818. plato_learn-1.1/plato/utils/trainer_utils.py +21 -0
  819. plato_learn-1.1/plato/utils/unary_encoding.py +47 -0
  820. plato_learn-1.1/plato.py +20 -0
  821. plato_learn-1.1/pyproject.toml +75 -0
  822. plato_learn-1.1/scripts/actions/install_cuda_ubuntu.sh +181 -0
  823. plato_learn-1.1/tests/TestsConfig/base_path.yml +2 -0
  824. plato_learn-1.1/tests/TestsConfig/coco.yml +115 -0
  825. plato_learn-1.1/tests/TestsConfig/distribution_noniid_sampler.yml +116 -0
  826. plato_learn-1.1/tests/TestsConfig/fedavg_tests.yml +61 -0
  827. plato_learn-1.1/tests/TestsConfig/gym.yml +113 -0
  828. plato_learn-1.1/tests/TestsConfig/kinetics.yml +117 -0
  829. plato_learn-1.1/tests/TestsConfig/label_quantity_noniid_sampler.yml +116 -0
  830. plato_learn-1.1/tests/TestsConfig/mixed_label_quantity_noniid_sampler.yml +121 -0
  831. plato_learn-1.1/tests/TestsConfig/models_config.yml +82 -0
  832. plato_learn-1.1/tests/TestsConfig/referitgame.yml +117 -0
  833. plato_learn-1.1/tests/TestsConfig/sample_quantity_noniid_sampler.yml +107 -0
  834. plato_learn-1.1/tests/checkpoint_tests.py +58 -0
  835. plato_learn-1.1/tests/client_tests.py +35 -0
  836. plato_learn-1.1/tests/config.yml +60 -0
  837. plato_learn-1.1/tests/dataloader_tests.py +221 -0
  838. plato_learn-1.1/tests/fedavg_tests.py +246 -0
  839. plato_learn-1.1/tests/lr_scheduler_tests.py +209 -0
  840. plato_learn-1.1/tests/model_tests.py +32 -0
  841. plato_learn-1.1/tests/sampler_test_utils.py +399 -0
  842. plato_learn-1.1/tests/sampler_tests.py +133 -0
  843. plato_learn-1.1/tests/unary_encoding_tests.py +51 -0
@@ -0,0 +1,100 @@
1
+ # ~/.bashrc: executed by bash(1) for non-login shells.
2
+ # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3
+ # for examples
4
+
5
+ # If not running interactively, don't do anything
6
+ [ -z "$PS1" ] && return
7
+
8
+ # don't put duplicate lines in the history. See bash(1) for more options
9
+ # ... or force ignoredups and ignorespace
10
+ HISTCONTROL=ignoredups:ignorespace
11
+
12
+ # append to the history file, don't overwrite it
13
+ shopt -s histappend
14
+
15
+ # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
16
+ HISTSIZE=1000
17
+ HISTFILESIZE=2000
18
+
19
+ # check the window size after each command and, if necessary,
20
+ # update the values of LINES and COLUMNS.
21
+ shopt -s checkwinsize
22
+
23
+ # make less more friendly for non-text input files, see lesspipe(1)
24
+ [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
25
+
26
+ # set variable identifying the chroot you work in (used in the prompt below)
27
+ if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
28
+ debian_chroot=$(cat /etc/debian_chroot)
29
+ fi
30
+
31
+ # set a fancy prompt (non-color, unless we know we "want" color)
32
+ case "$TERM" in
33
+ xterm-color) color_prompt=yes;;
34
+ esac
35
+
36
+ # uncomment for a colored prompt, if the terminal has the capability; turned
37
+ # off by default to not distract the user: the focus in a terminal window
38
+ # should be on the output of commands, not on the prompt
39
+ #force_color_prompt=yes
40
+
41
+ if [ -n "$force_color_prompt" ]; then
42
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
43
+ # We have color support; assume it's compliant with Ecma-48
44
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
45
+ # a case would tend to support setf rather than setaf.)
46
+ color_prompt=yes
47
+ else
48
+ color_prompt=
49
+ fi
50
+ fi
51
+
52
+ if [ "$color_prompt" = yes ]; then
53
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
54
+ else
55
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
56
+ fi
57
+ unset color_prompt force_color_prompt
58
+
59
+ # If this is an xterm set the title to user@host:dir
60
+ case "$TERM" in
61
+ xterm*|rxvt*)
62
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
63
+ ;;
64
+ *)
65
+ ;;
66
+ esac
67
+
68
+ # enable color support of ls and also add handy aliases
69
+ if [ -x /usr/bin/dircolors ]; then
70
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
71
+ alias ls='ls --color=auto'
72
+ #alias dir='dir --color=auto'
73
+ #alias vdir='vdir --color=auto'
74
+
75
+ alias grep='grep --color=auto'
76
+ alias fgrep='fgrep --color=auto'
77
+ alias egrep='egrep --color=auto'
78
+ fi
79
+
80
+ # some more ls aliases
81
+ alias ll='ls -alF'
82
+ alias la='ls -A'
83
+ alias l='ls -CF'
84
+
85
+ # Alias definitions.
86
+ # You may want to put all your additions into a separate file like
87
+ # ~/.bash_aliases, instead of adding them here directly.
88
+ # See /usr/share/doc/bash-doc/examples in the bash-doc package.
89
+
90
+ if [ -f ~/.bash_aliases ]; then
91
+ . ~/.bash_aliases
92
+ fi
93
+
94
+ # enable programmable completion features (you don't need to enable
95
+ # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
96
+ # sources /etc/bash.bashrc).
97
+ #if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
98
+ # . /etc/bash_completion
99
+ #fi
100
+
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG]"
5
+ labels: bug
6
+ assignees: baochunli
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Screenshots**
24
+ If applicable, add screenshots to help explain your problem.
25
+
26
+ **OS environment (please complete the following information):**
27
+ - OS: [e.g. macOS, Ubuntu Linux]
28
+ - Version [e.g. 10.15.7]
29
+
30
+ **Additional context**
31
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: "[FR]"
5
+ labels: enhancement
6
+ assignees: baochunli
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: Request for comments
3
+ about: Architectural changes, milestone setting, project management, community rules,
4
+ and general discussion about Plato
5
+ title: "[RFC]"
6
+ labels: rfc
7
+ assignees: baochunli
8
+
9
+ ---
10
+
11
+
@@ -0,0 +1,25 @@
1
+ <!--- Provide a general summary of your changes in the Title above -->
2
+
3
+ ## Description
4
+ <!--- Describe your changes in detail -->
5
+ <!--- Describe motivation and context -->
6
+ <!--- Why is this change required? What problem does it solve? -->
7
+ <!--- If it fixes an open issue, please link to the issue here. -->
8
+
9
+ ## How has this been tested?
10
+ <!--- Please describe in detail how you tested your changes. -->
11
+ <!--- Include details of your testing environment, tests ran to see how -->
12
+ <!--- your change affects other areas of the code, etc. -->
13
+
14
+ ## Types of changes
15
+ <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
16
+ - [ ] Bug fix (non-breaking change which fixes an issue) Fixes #
17
+ - [ ] New feature (non-breaking change which adds functionality)
18
+ - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
19
+
20
+ ## Checklist:
21
+ <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
22
+ <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
23
+ - [ ] My code has been formatted using Black and checked using PyLint.
24
+ - [ ] My change requires a change to the documentation.
25
+ - [ ] I have updated the documentation accordingly.
@@ -0,0 +1,179 @@
1
+ clients:
2
+ # Type
3
+ type: simple
4
+
5
+ # The total number of clients
6
+ total_clients: 1
7
+
8
+ # The number of clients selected in each round
9
+ per_round: 1
10
+
11
+ # Should the clients compute test accuracy locally?
12
+ do_test: true
13
+
14
+ random_seed: 1
15
+
16
+ server:
17
+ address: 127.0.0.1
18
+ port: 8000
19
+
20
+ data:
21
+ # The training and testing dataset
22
+ datasource: YOLOv8
23
+ data_params: configs/yolov8/data/coco128.yaml
24
+
25
+ # Where the dataset is located
26
+ data_path: data/COCO
27
+ train_path: data/COCO/coco128/images/train2017/
28
+ test_path: data/COCO/coco128/images/train2017/
29
+
30
+ # download command/URL (optional)
31
+ download_urls:
32
+ [
33
+ "https://ultralytics.com/assets/coco128.zip",
34
+ ]
35
+
36
+ # number of training examples
37
+ num_train_examples: 128
38
+
39
+ # number of testing examples
40
+ num_test_examples: 128
41
+
42
+ # number of classes
43
+ num_classes: 80
44
+
45
+ # image size
46
+ image_size: 640
47
+
48
+ # class names
49
+ classes:
50
+ [
51
+ "person",
52
+ "bicycle",
53
+ "car",
54
+ "motorcycle",
55
+ "airplane",
56
+ "bus",
57
+ "train",
58
+ "truck",
59
+ "boat",
60
+ "traffic light",
61
+ "fire hydrant",
62
+ "stop sign",
63
+ "parking meter",
64
+ "bench",
65
+ "bird",
66
+ "cat",
67
+ "dog",
68
+ "horse",
69
+ "sheep",
70
+ "cow",
71
+ "elephant",
72
+ "bear",
73
+ "zebra",
74
+ "giraffe",
75
+ "backpack",
76
+ "umbrella",
77
+ "handbag",
78
+ "tie",
79
+ "suitcase",
80
+ "frisbee",
81
+ "skis",
82
+ "snowboard",
83
+ "sports ball",
84
+ "kite",
85
+ "baseball bat",
86
+ "baseball glove",
87
+ "skateboard",
88
+ "surfboard",
89
+ "tennis racket",
90
+ "bottle",
91
+ "wine glass",
92
+ "cup",
93
+ "fork",
94
+ "knife",
95
+ "spoon",
96
+ "bowl",
97
+ "banana",
98
+ "apple",
99
+ "sandwich",
100
+ "orange",
101
+ "broccoli",
102
+ "carrot",
103
+ "hot dog",
104
+ "pizza",
105
+ "donut",
106
+ "cake",
107
+ "chair",
108
+ "couch",
109
+ "potted plant",
110
+ "bed",
111
+ "dining table",
112
+ "toilet",
113
+ "tv",
114
+ "laptop",
115
+ "mouse",
116
+ "remote",
117
+ "keyboard",
118
+ "cell phone",
119
+ "microwave",
120
+ "oven",
121
+ "toaster",
122
+ "sink",
123
+ "refrigerator",
124
+ "book",
125
+ "clock",
126
+ "vase",
127
+ "scissors",
128
+ "teddy bear",
129
+ "hair drier",
130
+ "toothbrush",
131
+ ]
132
+
133
+ # Number of samples in each partition
134
+ partition_size: 128
135
+
136
+ # IID or non-IID?
137
+ sampler: iid
138
+
139
+ trainer:
140
+ # The type of the trainer
141
+ type: yolov8
142
+
143
+ # test function
144
+ testtype: map
145
+
146
+ # The maximum number of training rounds
147
+ rounds: 1
148
+
149
+ # The maximum number of clients running concurrently
150
+ max_concurrency: 3
151
+
152
+ # The target accuracy
153
+ target_accuracy: 0.99
154
+
155
+ # Number of epoches for local training in each communication round
156
+ epochs: 1
157
+ batch_size: 4
158
+ optimizer: Adam
159
+ linear_lr: false
160
+
161
+ # The machine learning model
162
+ model_name: yolov8
163
+
164
+ algorithm:
165
+ # Aggregation algorithm
166
+ type: fedavg
167
+
168
+ parameters:
169
+ grid_size: 32
170
+
171
+ model:
172
+ type: yolov8n.pt
173
+ cfg: yolov8n.yaml
174
+ num_classes: 80
175
+
176
+ optimizer:
177
+ lr: 0.01
178
+ momentum: 0.9
179
+ weight_decay: 0.0
@@ -0,0 +1,27 @@
1
+ # This workflow will delete old workflow runs, on a schedule or manually triggered.
2
+
3
+ name: Delete old workflow runs
4
+
5
+ on:
6
+ workflow_dispatch:
7
+ inputs:
8
+ days:
9
+ description: 'Number of days.'
10
+ required: true
11
+ default: 30
12
+ minimum_runs:
13
+ description: 'The minimum runs to keep for each workflow.'
14
+ required: true
15
+ default: 6
16
+
17
+ jobs:
18
+ del_runs:
19
+ runs-on: ubuntu-20.04
20
+ steps:
21
+ - name: Delete workflow runs
22
+ uses: Mattraks/delete-workflow-runs@v2
23
+ with:
24
+ token: ${{ github.token }}
25
+ repository: ${{ github.repository }}
26
+ retain_days: ${{ github.event.inputs.days }}
27
+ keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
@@ -0,0 +1,36 @@
1
+ name: Continuous Integration Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ # Allows you to run this workflow manually from the Actions tab
9
+ workflow_dispatch:
10
+ branches: [main]
11
+
12
+ jobs:
13
+ Tests:
14
+ runs-on: ubuntu-20.04
15
+
16
+ steps:
17
+ - uses: actions/checkout@v3
18
+
19
+ - name: Install uv
20
+ uses: astral-sh/setup-uv@v4
21
+
22
+ - name: Install CUDA
23
+ env:
24
+ cuda: "11.3"
25
+ run: bash ./scripts/actions/install_cuda_ubuntu.sh
26
+ shell: bash
27
+
28
+ - name: Training workloads
29
+ run: |
30
+ mkdir ./models/pretrained
31
+ wget https://kubeedge.obs.cn-north-1.myhuaweicloud.com/model/yolov5.pth
32
+ mv yolov5.pth ./models/pretrained
33
+ uv run plato.py --config=configs/MNIST/fedavg_lenet5.yml
34
+ uv run plato.py --config=configs/MNIST/mistnet_lenet5.yml
35
+ uv run plato.py --config=.github/workflows/configs/fedavg_yolov5.yml
36
+ uv run plato.py --config=.github/workflows/configs/mistnet_yolov5.yml
@@ -0,0 +1,32 @@
1
+ # This workflow will upload a Python Package using uv when a release is created.
2
+
3
+ name: Upload the plato-learn Python Package to PyPI
4
+
5
+ on:
6
+ release:
7
+ types:
8
+ - created
9
+
10
+ jobs:
11
+ build_and_deploy:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout repository
16
+ uses: actions/checkout@v5
17
+
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v3
20
+ with:
21
+ version: "latest"
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.13"
27
+
28
+ - name: Build package
29
+ run: uv build
30
+
31
+ - name: Publish package to PyPI
32
+ run: uv publish --token ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,32 @@
1
+ name: PyTorch CI Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ # Allows you to run this workflow manually from the Actions tab
9
+ workflow_dispatch:
10
+ branches: [main]
11
+
12
+ jobs:
13
+ PyTorch-Tests:
14
+ runs-on: ubuntu-20.04
15
+
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v5
19
+ with:
20
+ submodules: recursive
21
+
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@v4
24
+
25
+ - name: Training workloads
26
+ shell: bash -l {0}
27
+ run: |
28
+ uv run plato.py --config=configs/MNIST/fedavg_lenet5.yml
29
+ uv run plato.py --config=configs/MNIST/fedavg_cross_silo_lenet5.yml
30
+ uv run plato.py --config=configs/MNIST/fedavg_async_lenet5.yml
31
+ uv run plato.py --config=configs/MNIST/fedavg_lenet5_noniid.yml
32
+ uv run plato.py --config=configs/MNIST/mistnet_lenet5.yml
@@ -0,0 +1,163 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+ .pypirc
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pipenv
86
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
87
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
88
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
89
+ # install all needed dependencies.
90
+ #Pipfile.lock
91
+
92
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
93
+ __pypackages__/
94
+
95
+ # Celery stuff
96
+ celerybeat-schedule
97
+ celerybeat.pid
98
+
99
+ # SageMath parsed files
100
+ *.sage.py
101
+
102
+ # Environments
103
+ .env
104
+ .venv
105
+ env/
106
+ venv/
107
+ ENV/
108
+ env.bak/
109
+ venv.bak/
110
+
111
+ # Spyder project settings
112
+ .spyderproject
113
+ .spyproject
114
+
115
+ # Rope project settings
116
+ .ropeproject
117
+
118
+ # mkdocs documentation
119
+ /site
120
+
121
+ # mypy
122
+ .mypy_cache/
123
+ .dmypy.json
124
+ dmypy.json
125
+
126
+ # Pyre type checker
127
+ .pyre/
128
+
129
+ # Visual Studio Code
130
+ .vscode/
131
+
132
+ # Configuration files
133
+ /*.yml
134
+
135
+ # Data files
136
+ data/
137
+ tests/data/
138
+
139
+ # Models and checkpoints
140
+ pretrained/
141
+ /models/
142
+ logs/
143
+ checkpoints/
144
+ *.pth
145
+
146
+ # Result files
147
+ results/
148
+
149
+ # macOS
150
+ .DS_Store
151
+
152
+ # Plain text files in the root working directory are most likely temporary
153
+ /*.txt
154
+
155
+ # Sphinx documentation
156
+ docs/_build/
157
+
158
+ # Homomorphic encryption
159
+ .ckks_context/
160
+ yolov8n.pt
161
+
162
+ # uv
163
+ uv.lock
@@ -0,0 +1,12 @@
1
+ [submodule "plato/models/dvit"]
2
+ path = plato/models/dvit
3
+ url = https://github.com/zhoudaquan/dvit_repo
4
+ [submodule "plato/models/t2tvit"]
5
+ path = plato/models/t2tvit
6
+ url = https://github.com/yitu-opensource/T2T-ViT
7
+ [submodule "examples/pfedrlnas/VIT/nasvit_wrapper/NASViT"]
8
+ path = examples/pfedrlnas/VIT/nasvit_wrapper/NASViT
9
+ url = https://github.com/facebookresearch/NASViT
10
+ [submodule "examples/controlnet_split_learning/ControlNet"]
11
+ path = examples/split_learning/controlnet_split_learning/ControlNet
12
+ url = https://github.com/lllyasviel/ControlNet
@@ -0,0 +1 @@
1
+ 3.13
@@ -0,0 +1,20 @@
1
+ # Download base image from NVIDIA's Docker Hub
2
+ FROM nvidia/cuda:13.0.1-cudnn-devel-ubuntu24.04
3
+ LABEL maintainer="Baochun Li"
4
+
5
+ WORKDIR /root/plato
6
+ COPY . /root/plato/
7
+
8
+ RUN apt-get update \
9
+ && apt-get install -y libgomp1 \
10
+ && apt-get install -y curl \
11
+ && curl -LsSf https://astral.sh/uv/install.sh | sh
12
+
13
+ # Set environment variables for uv before using it
14
+ ENV PATH="/root/.local/bin:$PATH"
15
+
16
+ # Set additional environment variables for uv
17
+ ENV UV_SYSTEM_PYTHON=1
18
+
19
+ # Set default command to use uv run
20
+ CMD ["/bin/bash"]