MEDfl 2.0.5.dev0__tar.gz → 2.0.5.dev2__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 (362) hide show
  1. medfl-2.0.5.dev2/MEDfl/rw/client.py +421 -0
  2. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/rw/model.py +3 -3
  3. medfl-2.0.5.dev2/MEDfl/rw/strategy.py +307 -0
  4. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl.egg-info/PKG-INFO +33 -2
  5. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/PKG-INFO +33 -2
  6. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/eicu_sapsii_data.csv +1 -1
  7. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/eicu_test_1.csv +1 -1
  8. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/setup.py +1 -1
  9. MEDfl-2.0.5.dev0/MEDfl/rw/client.py +0 -487
  10. MEDfl-2.0.5.dev0/MEDfl/rw/strategy.py +0 -429
  11. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.github/workflows/main.yml +0 -0
  12. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.gitignore +0 -0
  13. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.idea/.gitignore +0 -0
  14. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.idea/MEDfl.iml +0 -0
  15. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
  16. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.idea/misc.xml +0 -0
  17. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.idea/modules.xml +0 -0
  18. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/.idea/vcs.xml +0 -0
  19. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/LICENSE +0 -0
  20. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/__init__.py +0 -0
  21. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/client.py +0 -0
  22. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/dynamicModal.py +0 -0
  23. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/federated_dataset.py +0 -0
  24. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/flpipeline.py +0 -0
  25. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/model.py +0 -0
  26. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/params.yaml +0 -0
  27. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/params_optimiser.py +0 -0
  28. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/plot.py +0 -0
  29. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/server.py +0 -0
  30. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/strategy.py +0 -0
  31. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/LearningManager/utils.py +0 -0
  32. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/__init__.py +0 -0
  33. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/database_connector.py +0 -0
  34. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/dataset.py +0 -0
  35. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/flsetup.py +0 -0
  36. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/net_helper.py +0 -0
  37. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/net_manager_queries.py +0 -0
  38. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/network.py +0 -0
  39. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/NetManager/node.py +0 -0
  40. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/__init__.py +0 -0
  41. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/rw/__init__.py +0 -0
  42. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/rw/server.py +0 -0
  43. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/scripts/__init__.py +0 -0
  44. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/scripts/base.py +0 -0
  45. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl/scripts/create_db.py +0 -0
  46. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl.egg-info/SOURCES.txt +0 -0
  47. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl.egg-info/dependency_links.txt +0 -0
  48. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl.egg-info/requires.txt +0 -0
  49. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/MEDfl.egg-info/top_level.txt +0 -0
  50. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/README.md +0 -0
  51. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/README +0 -0
  52. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/__init__.py +0 -0
  53. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/__pycache__/env.cpython-38.pyc +0 -0
  54. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/alembic_logging.ini +0 -0
  55. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/debug.log +0 -0
  56. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/env.py +0 -0
  57. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/script.py.mako +0 -0
  58. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/versions/__pycache__/b159ee510a90_initial.cpython-38.pyc +0 -0
  59. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic/versions/b159ee510a90_initial.py +0 -0
  60. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/alembic.ini +0 -0
  61. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/Makefile +0 -0
  62. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.buildinfo +0 -0
  63. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.doctrees/Medfl.LearningManager.doctree +0 -0
  64. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.doctrees/Medfl.NetManager.doctree +0 -0
  65. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.doctrees/Medfl.doctree +0 -0
  66. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.doctrees/environment.pickle +0 -0
  67. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.doctrees/index.doctree +0 -0
  68. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.doctrees/modules.doctree +0 -0
  69. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/.nojekyll +0 -0
  70. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/Medfl.LearningManager.html +0 -0
  71. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/Medfl.NetManager.html +0 -0
  72. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/Medfl.html +0 -0
  73. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/client.html +0 -0
  74. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/dynamicModal.html +0 -0
  75. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/federated_dataset.html +0 -0
  76. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/flpipeline.html +0 -0
  77. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/model.html +0 -0
  78. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/plot.html +0 -0
  79. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/server.html +0 -0
  80. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/strategy.html +0 -0
  81. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/LearningManager/utils.html +0 -0
  82. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/NetManager/dataset.html +0 -0
  83. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/NetManager/flsetup.html +0 -0
  84. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/NetManager/net_helper.html +0 -0
  85. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/NetManager/network.html +0 -0
  86. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/Medfl/NetManager/node.html +0 -0
  87. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_modules/index.html +0 -0
  88. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_sources/Medfl.LearningManager.rst.txt +0 -0
  89. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_sources/Medfl.NetManager.rst.txt +0 -0
  90. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_sources/Medfl.rst.txt +0 -0
  91. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_sources/index.rst.txt +0 -0
  92. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_sources/modules.rst.txt +0 -0
  93. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/MEDomics.png +0 -0
  94. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  95. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/basic.css +0 -0
  96. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/badge_only.css +0 -0
  97. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  98. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  99. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  100. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  101. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/fontawesome-webfont.eot +0 -0
  102. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/fontawesome-webfont.svg +0 -0
  103. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  104. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/fontawesome-webfont.woff +0 -0
  105. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  106. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-bold-italic.woff +0 -0
  107. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  108. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-bold.woff +0 -0
  109. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-bold.woff2 +0 -0
  110. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-normal-italic.woff +0 -0
  111. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  112. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-normal.woff +0 -0
  113. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/fonts/lato-normal.woff2 +0 -0
  114. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/css/theme.css +0 -0
  115. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/dark_mode_css/custom.css +0 -0
  116. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/dark_mode_css/dark.css +0 -0
  117. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/dark_mode_css/general.css +0 -0
  118. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/dark_mode_js/default_dark.js +0 -0
  119. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/dark_mode_js/default_light.js +0 -0
  120. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/dark_mode_js/theme_switcher.js +0 -0
  121. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/doctools.js +0 -0
  122. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/documentation_options.js +0 -0
  123. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/file.png +0 -0
  124. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/jquery.js +0 -0
  125. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/js/badge_only.js +0 -0
  126. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/js/html5shiv-printshiv.min.js +0 -0
  127. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/js/html5shiv.min.js +0 -0
  128. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/js/theme.js +0 -0
  129. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/language_data.js +0 -0
  130. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/minus.png +0 -0
  131. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/plus.png +0 -0
  132. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/pygments.css +0 -0
  133. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/searchtools.js +0 -0
  134. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/_static/sphinx_highlight.js +0 -0
  135. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/genindex.html +0 -0
  136. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/index.html +0 -0
  137. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/modules.html +0 -0
  138. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/objects.inv +0 -0
  139. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/py-modindex.html +0 -0
  140. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/search.html +0 -0
  141. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/_build/searchindex.js +0 -0
  142. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/Documentation.doctree +0 -0
  143. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/Installation.doctree +0 -0
  144. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/Medfl.LearningManager.doctree +0 -0
  145. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/Medfl.NetManager.doctree +0 -0
  146. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/Medfl.doctree +0 -0
  147. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/configuration_file.doctree +0 -0
  148. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/environment.pickle +0 -0
  149. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/index.doctree +0 -0
  150. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/modules.doctree +0 -0
  151. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/doctrees/tutorials.doctree +0 -0
  152. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/.buildinfo +0 -0
  153. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/.nojekyll +0 -0
  154. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/Documentation.html +0 -0
  155. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/Installation.html +0 -0
  156. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/Medfl.LearningManager.html +0 -0
  157. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/Medfl.NetManager.html +0 -0
  158. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/Medfl.html +0 -0
  159. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/FTL_comp.png +0 -0
  160. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/LearningManager.png +0 -0
  161. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/MEDfl_Diagramm.png +0 -0
  162. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/NetManager_Diagramm.png +0 -0
  163. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/learningresults.png +0 -0
  164. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/mysqllogo.png +0 -0
  165. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/phpmyadmin.png +0 -0
  166. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/wampLogo.png +0 -0
  167. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_images/xampplogo.png +0 -0
  168. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_modules/index.html +0 -0
  169. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/Documentation.rst.txt +0 -0
  170. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/Installation.rst.txt +0 -0
  171. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/Medfl.LearningManager.rst.txt +0 -0
  172. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/Medfl.NetManager.rst.txt +0 -0
  173. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/Medfl.rst.txt +0 -0
  174. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/configuration_file.rst.txt +0 -0
  175. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/index.rst.txt +0 -0
  176. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/modules.rst.txt +0 -0
  177. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_sources/tutorials.rst.txt +0 -0
  178. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/MEDomics.png +0 -0
  179. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  180. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/basic.css +0 -0
  181. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/badge_only.css +0 -0
  182. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  183. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  184. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  185. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  186. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  187. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  188. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  189. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  190. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  191. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  192. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  193. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  194. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  195. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  196. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  197. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  198. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  199. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/css/theme.css +0 -0
  200. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/custom.css +0 -0
  201. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/dark_mode_css/custom.css +0 -0
  202. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/dark_mode_css/dark.css +0 -0
  203. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/dark_mode_css/general.css +0 -0
  204. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/dark_mode_js/default_dark.js +0 -0
  205. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/dark_mode_js/default_light.js +0 -0
  206. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/dark_mode_js/theme_switcher.js +0 -0
  207. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/doctools.js +0 -0
  208. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/documentation_options.js +0 -0
  209. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/file.png +0 -0
  210. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/jquery-3.6.0.js +0 -0
  211. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/jquery.js +0 -0
  212. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/js/badge_only.js +0 -0
  213. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  214. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/js/html5shiv.min.js +0 -0
  215. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/js/theme.js +0 -0
  216. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/language_data.js +0 -0
  217. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/minus.png +0 -0
  218. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/plus.png +0 -0
  219. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/pygments.css +0 -0
  220. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/searchtools.js +0 -0
  221. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/sphinx_highlight.js +0 -0
  222. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/underscore-1.13.1.js +0 -0
  223. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/_static/underscore.js +0 -0
  224. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/configuration_file.html +0 -0
  225. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/genindex.html +0 -0
  226. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/index.html +0 -0
  227. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/modules.html +0 -0
  228. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/objects.inv +0 -0
  229. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/py-modindex.html +0 -0
  230. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/search.html +0 -0
  231. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/searchindex.js +0 -0
  232. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/build/html/tutorials.html +0 -0
  233. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/make.bat +0 -0
  234. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/Documentation.rst +0 -0
  235. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/Installation.rst +0 -0
  236. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/Medfl.LearningManager.rst +0 -0
  237. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/Medfl.NetManager.rst +0 -0
  238. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/Medfl.rst +0 -0
  239. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/_static/custom.css +0 -0
  240. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/conf.py +0 -0
  241. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/configuration_file.rst +0 -0
  242. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/FL_gen.png +0 -0
  243. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/FTL_comp.png +0 -0
  244. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/FlDatasetDiagramm.png +0 -0
  245. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/GDP.png +0 -0
  246. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/LDP.png +0 -0
  247. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/LearningManager.png +0 -0
  248. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/MEDfl_Diagramm.png +0 -0
  249. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/Modelinit.png +0 -0
  250. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/NetManager_Diagramm.png +0 -0
  251. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/NetworkCreation.png +0 -0
  252. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/createServer.png +0 -0
  253. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/learningresults.png +0 -0
  254. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/logos/mysqllogo.png +0 -0
  255. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/logos/phpmyadmin.png +0 -0
  256. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/logos/wampLogo.png +0 -0
  257. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/logos/xampplogo.png +0 -0
  258. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/modeltest.png +0 -0
  259. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/netMan.png +0 -0
  260. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/nodecreation.png +0 -0
  261. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/pipeline.png +0 -0
  262. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/Images/strategy.png +0 -0
  263. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/figures/MEDomics.png +0 -0
  264. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/index.rst +0 -0
  265. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/modules.rst +0 -0
  266. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/docs/source/tutorials.rst +0 -0
  267. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/global_params.yaml +0 -0
  268. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/medfl.egg-info/PKG-INFO +0 -0
  269. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/medfl.egg-info/SOURCES.txt +0 -0
  270. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/medfl.egg-info/dependency_links.txt +0 -0
  271. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/medfl.egg-info/requires.txt +0 -0
  272. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/medfl.egg-info/top_level.txt +0 -0
  273. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/.ipynb_checkpoints/trainedModels/binary_classifier.pth +0 -0
  274. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/.ipynb_checkpoints/trainedModels/eicu_binary_classifier.pth +0 -0
  275. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/.ipynb_checkpoints/trainedModels/grid_search_classifier.pth +0 -0
  276. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/.ipynb_checkpoints/trainedModels/new_binary_classifier.pth +0 -0
  277. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/.ipynb_checkpoints/trainedModels/updated_model.pth +0 -0
  278. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/First_Tuto.ipynb +0 -0
  279. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/FL_gen.png +0 -0
  280. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/FTL_comp.png +0 -0
  281. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/FlDatasetDiagramm.png +0 -0
  282. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/GDP.png +0 -0
  283. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/LDP.png +0 -0
  284. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/LearningManager.png +0 -0
  285. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/MEDfl_Diagramm.png +0 -0
  286. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/MEDfl_bachmarking_plan.png +0 -0
  287. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/Modelinit.png +0 -0
  288. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/NetManager_Diagramm.png +0 -0
  289. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/NetworkCreation.png +0 -0
  290. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/createServer.png +0 -0
  291. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/learningresults.png +0 -0
  292. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/logos/mysqllogo.png +0 -0
  293. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/logos/phpmyadmin.png +0 -0
  294. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/logos/wampLogo.png +0 -0
  295. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/logos/xampplogo.png +0 -0
  296. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/modeltest.png +0 -0
  297. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/netMan.png +0 -0
  298. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/nodecreation.png +0 -0
  299. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/optuna_optim_diag.png +0 -0
  300. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/pipeline.png +0 -0
  301. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/Images/strategy.png +0 -0
  302. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/MEDfl_benchmarks.ipynb +0 -0
  303. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/banchmarking_plan.md +0 -0
  304. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/benchmarks_results.txt +0 -0
  305. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/network_architecture/net_bachmarking_conf_1.ipynb +0 -0
  306. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/network_architecture/net_bachmarking_conf_2.ipynb +0 -0
  307. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/transfer_learning/TL_activated.ipynb +0 -0
  308. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/banchmarking/transfer_learning/TL_dectivated.ipynb +0 -0
  309. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/chunk_1.csv +0 -0
  310. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/chunk_2.csv +0 -0
  311. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/chunk_3.csv +0 -0
  312. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/config_1/part_1.csv +0 -0
  313. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/config_1/part_2.csv +0 -0
  314. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/config_1/part_3.csv +0 -0
  315. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/config_1/test_1.csv +0 -0
  316. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/config_1/test_2.csv +0 -0
  317. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/eicu_sapsii_data_test.csv +0 -0
  318. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/eicu_sapsii_data_test_1.csv +0 -0
  319. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/masterDataSet/Mimic_ouael.csv +0 -0
  320. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/masterDataSet/Mimic_train.csv +0 -0
  321. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/masterDataSet/eICU.csv +0 -0
  322. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/nodesData/output_1.csv +0 -0
  323. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/nodesData/output_2.csv +0 -0
  324. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/nodesData/output_3.csv +0 -0
  325. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/nodesData/output_4.csv +0 -0
  326. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/nodesData/output_5.csv +0 -0
  327. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/test_1.csv +0 -0
  328. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/test_2.csv +0 -0
  329. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/test_3.csv +0 -0
  330. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/data/validation/Mimic_validation.csv +0 -0
  331. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/eicu_test.csv +0 -0
  332. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/eicu_test_2.csv +0 -0
  333. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/eicu_test_3.csv +0 -0
  334. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/sapsii_score_knnimputed_eicu.csv +0 -0
  335. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/1_DB.ipynb +0 -0
  336. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/2_NetManager.ipynb +0 -0
  337. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/3_TransferLearning copy.ipynb +0 -0
  338. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/3_TransferLearning.ipynb +0 -0
  339. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/4_LearningManager.ipynb +0 -0
  340. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/5_LearningResults.ipynb +0 -0
  341. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/6_ModelChoice.ipynb +0 -0
  342. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/7_ParamsOptimiser.ipynb +0 -0
  343. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/8_complete_tutorial.ipynb +0 -0
  344. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/newplot2.png +0 -0
  345. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/notebooks/tutorial/newplot4.png +0 -0
  346. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/requirements.txt +0 -0
  347. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/setup.cfg +0 -0
  348. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/setup_mysql.sh +0 -0
  349. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__init__.py +0 -0
  350. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__pycache__/test_dataset.cpython-38.pyc +0 -0
  351. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__pycache__/test_federated_dataset.cpython-38.pyc +0 -0
  352. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__pycache__/test_flpipeline.cpython-38.pyc +0 -0
  353. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__pycache__/test_flsetup.cpython-38.pyc +0 -0
  354. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__pycache__/test_network.cpython-38.pyc +0 -0
  355. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/__pycache__/test_node.cpython-38.pyc +0 -0
  356. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/test_dataset.py +0 -0
  357. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/test_federated_dataset.py +0 -0
  358. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/test_flpipeline.py +0 -0
  359. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/test_flsetup.py +0 -0
  360. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/test_network.py +0 -0
  361. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/tests/test_node.py +0 -0
  362. {MEDfl-2.0.5.dev0 → medfl-2.0.5.dev2}/workflows/migration.yml +0 -0
@@ -0,0 +1,421 @@
1
+ # File: client.py
2
+
3
+ import argparse
4
+ import pandas as pd
5
+ import flwr as fl
6
+ import torch
7
+ import torch.nn as nn
8
+ import torch.optim as optim
9
+ from torch.utils.data import TensorDataset, DataLoader
10
+ from sklearn.metrics import accuracy_score, roc_auc_score
11
+ from sklearn.model_selection import train_test_split
12
+ from MEDfl.rw.model import Net # votre définition de modèle
13
+ import socket
14
+ import platform
15
+ import psutil
16
+ import shutil
17
+ import numpy as np
18
+
19
+ try:
20
+ import GPUtil
21
+ except ImportError:
22
+ GPUtil = None
23
+
24
+
25
+ class DPConfig:
26
+ """
27
+ Configuration for differential privacy.
28
+
29
+ Attributes:
30
+ noise_multiplier (float): Noise multiplier for DP.
31
+ max_grad_norm (float): Maximum gradient norm for clipping.
32
+ batch_size (int): Batch size for training.
33
+ secure_rng (bool): Use a secure random generator.
34
+ """
35
+
36
+ def __init__(
37
+ self,
38
+ noise_multiplier: float = 1.0,
39
+ max_grad_norm: float = 1.0,
40
+ batch_size: int = 32,
41
+ secure_rng: bool = False,
42
+ ):
43
+ self.noise_multiplier = noise_multiplier
44
+ self.max_grad_norm = max_grad_norm
45
+ self.batch_size = batch_size
46
+ self.secure_rng = secure_rng
47
+
48
+
49
+ class FlowerClient(fl.client.NumPyClient):
50
+ def __init__(
51
+ self,
52
+ server_address: str,
53
+ data_path: str = "data/data.csv",
54
+ dp_config: DPConfig = None,
55
+ # NEW (optional client overrides; do NOT remove old args)
56
+ val_frac: float | None = None,
57
+ test_frac: float | None = None,
58
+ id_col: str | None = None,
59
+ test_ids: str | None = None,
60
+ seed: int = 42,
61
+ ):
62
+ self.server_address = server_address
63
+ self.dp_config = dp_config
64
+ self.client_val_frac = val_frac
65
+ self.client_test_frac = test_frac
66
+ self.id_col = id_col
67
+ self.test_ids = test_ids
68
+ self.seed = seed
69
+
70
+ # Load the CSV once; actual column selection happens on first fit using server config
71
+ self._df = pd.read_csv(data_path)
72
+
73
+ # Defaults used only for get_properties BEFORE first fit (last column target)
74
+ self.feature_names = self._df.columns[:-1].tolist()
75
+ self.target_name = self._df.columns[-1]
76
+ self.label_counts = self._df[self.target_name].value_counts().to_dict()
77
+ self.classes = sorted(self.label_counts.keys())
78
+
79
+ # Tensors for metrics before first fit (fallback to all-but-last as features)
80
+ X_default = self._df.iloc[:, :-1].values
81
+ y_default = self._df.iloc[:, -1].values
82
+ self.X_tensor = torch.tensor(X_default, dtype=torch.float32)
83
+ self.y_tensor = torch.tensor(y_default, dtype=torch.float32)
84
+
85
+ # Placeholders; we lazily build loaders/model on the first fit when we see server config
86
+ self.train_loader: DataLoader | None = None
87
+ self.val_loader: DataLoader | None = None
88
+ self.test_loader: DataLoader | None = None
89
+
90
+ self.model: Net | None = None
91
+ self.criterion = nn.BCEWithLogitsLoss()
92
+ self.optimizer: optim.Optimizer | None = None
93
+
94
+ # Effective settings (filled at first fit)
95
+ self.effective_features: list[str] = self.feature_names[:]
96
+ self.effective_target: str = self.target_name
97
+ self.effective_val_frac: float = float(self.client_val_frac) if self.client_val_frac is not None else 0.0
98
+ self.effective_test_frac: float = float(self.client_test_frac) if self.client_test_frac is not None else 0.0
99
+
100
+ self._initialized = False
101
+ self._dp_attached = False # to avoid wrapping twice
102
+
103
+ # ---------- helpers
104
+
105
+ def _mk_loader(self, X: np.ndarray, y: np.ndarray, batch_size: int, shuffle: bool) -> DataLoader:
106
+ x_t = torch.tensor(X, dtype=torch.float32)
107
+ y_t = torch.tensor(y, dtype=torch.float32)
108
+ return DataLoader(TensorDataset(x_t, y_t), batch_size=batch_size, shuffle=shuffle)
109
+
110
+ def _lazy_init_from_server_config(self, config: dict):
111
+ """
112
+ Build model and (train, val, test) loaders once, using:
113
+ - Server-enforced schema: config['features'] (comma-separated), config['target']
114
+ - Split fractions: client overrides win; else use server's val_fraction/test_fraction
115
+ - NEW: if config['test_ids'] is set (per-client from strategy), use ID-based split
116
+ """
117
+ # ---------- schema from server (enforced if provided)
118
+ srv_features = (config.get("features") or "").strip()
119
+ srv_target = (config.get("target") or "").strip()
120
+ print(f"[Client] Initializing with server schema: features='{srv_features}', target='{srv_target}'")
121
+
122
+ if srv_target:
123
+ if srv_target not in self._df.columns:
124
+ raise ValueError(f"Server-specified target '{srv_target}' not in CSV columns {list(self._df.columns)}")
125
+ target_col = srv_target
126
+ else:
127
+ target_col = self._df.columns[-1] # fallback (keeps backward compatibility)
128
+
129
+ if srv_features:
130
+ feat_cols = [c.strip() for c in srv_features.split(",") if c.strip()]
131
+ missing = [c for c in feat_cols if c not in self._df.columns]
132
+ if missing:
133
+ raise ValueError(f"Server-specified feature(s) not found in CSV: {missing}")
134
+ else:
135
+ feat_cols = [c for c in self._df.columns if c != target_col]
136
+
137
+ # ---------- fractions: client overrides > server defaults > fallback (0.10/0.10)
138
+ srv_val = config.get("val_fraction", None)
139
+ srv_test = config.get("test_fraction", None)
140
+ val_frac = self.client_val_frac if self.client_val_frac is not None else (float(srv_val) if srv_val is not None else 0.10)
141
+ test_frac = self.client_test_frac if self.client_test_frac is not None else (float(srv_test) if srv_test is not None else 0.10)
142
+
143
+ if not (0.0 <= val_frac < 1.0):
144
+ raise ValueError(f"Invalid val_frac: {val_frac} (must be 0 <= val_frac < 1)")
145
+
146
+ # ---------- NEW: adopt test_ids / id_col from server config if provided
147
+ if (not self.test_ids or not self.test_ids.strip()) and config.get("test_ids"):
148
+
149
+ # strategy (per_client) can inject test_ids as list or CSV; normalize to CSV string
150
+ ti = config.get("test_ids")
151
+ if isinstance(ti, (list, tuple, set)):
152
+ self.test_ids = ",".join(str(x) for x in ti)
153
+ else:
154
+ self.test_ids = str(ti)
155
+
156
+ print(f"[Client] Using server-provided test_ids: {self.test_ids}")
157
+
158
+ if (not self.id_col) and config.get("id_col"):
159
+ self.id_col = str(config.get("id_col"))
160
+
161
+ # ---------- extract arrays with the enforced schema
162
+ X_all = self._df[feat_cols].values
163
+ y_all = self._df[target_col].values
164
+
165
+ # Keep tensors for global metrics logging (same behavior as before)
166
+ self.X_tensor = torch.tensor(X_all, dtype=torch.float32)
167
+ self.y_tensor = torch.tensor(y_all, dtype=torch.float32)
168
+
169
+ # ---------- split
170
+ if self.test_ids and self.test_ids.strip(): # ID-based mode (unchanged behavior, now also supports server-provided IDs)
171
+ print("[Client] Using ID-based test selection")
172
+ test_ids_list = [i.strip() for i in self.test_ids.split(',') if i.strip()]
173
+
174
+ if self.id_col and self.id_col in self._df.columns:
175
+ id_series = self._df[self.id_col]
176
+ # Align types between id_series and test_ids_list
177
+ if np.issubdtype(id_series.dtype, np.number):
178
+ test_ids_list = [int(i) for i in test_ids_list]
179
+ else:
180
+ test_ids_list = [str(i) for i in test_ids_list]
181
+
182
+ else:
183
+ print(f"[Client] Falling back to line numbers (index) as IDs since id_col='{self.id_col}' is invalid or not provided")
184
+ id_series = self._df.index
185
+ try:
186
+ test_ids_list = [int(i) for i in test_ids_list]
187
+ except ValueError:
188
+ raise ValueError("Test IDs must be integers when using line numbers as IDs")
189
+
190
+ test_mask = id_series.isin(test_ids_list)
191
+ if not test_mask.any():
192
+ print("[Client] Warning: No matching IDs found for test set; it will be empty")
193
+
194
+ X_test = X_all[test_mask]
195
+ y_test = y_all[test_mask]
196
+ X_trval = X_all[~test_mask]
197
+ y_trval = y_all[~test_mask]
198
+
199
+ actual_test_frac = len(y_test) / len(y_all) if len(y_all) > 0 else 0.0
200
+ if val_frac + actual_test_frac >= 1.0:
201
+ raise ValueError(f"Validation fraction {val_frac} + actual test fraction {actual_test_frac} >= 1.0")
202
+
203
+ self.effective_test_frac = actual_test_frac # For logging
204
+
205
+ else: # Fraction-based mode (existing)
206
+ if not (0.0 <= test_frac < 1.0 and (val_frac + test_frac) < 1.0):
207
+ raise ValueError(f"Invalid fractions: val={val_frac}, test={test_frac} (require 0 <= val,test < 1 and val+test < 1)")
208
+
209
+ strat_all = y_all if len(np.unique(y_all)) > 1 else None
210
+ X_trval, X_test, y_trval, y_test = train_test_split(
211
+ X_all, y_all, test_size=test_frac, random_state=self.seed, stratify=strat_all
212
+ )
213
+
214
+ # Split val from trval (common to both modes)
215
+ if val_frac > 0 and len(y_trval) > 0:
216
+ actual_test_frac = len(y_test) / len(y_all) if len(y_all) > 0 else 0.0
217
+ rel_val = val_frac / (1.0 - actual_test_frac) if (1.0 - actual_test_frac) > 0 else 0.0
218
+ strat_tr = y_trval if len(np.unique(y_trval)) > 1 else None
219
+ X_train, X_val, y_train, y_val = train_test_split(
220
+ X_trval, y_trval, test_size=rel_val, random_state=self.seed, stratify=strat_tr
221
+ )
222
+ else:
223
+ X_train, y_train = X_trval, y_trval
224
+ X_val, y_val = np.empty((0, X_all.shape[1])), np.empty((0,))
225
+
226
+ # ---------- build loaders
227
+ batch_size = self.dp_config.batch_size if self.dp_config else 32
228
+ self.train_loader = self._mk_loader(X_train, y_train, batch_size, shuffle=True)
229
+ self.val_loader = self._mk_loader(X_val, y_val, batch_size= batch_size, shuffle=False) if len(y_val) else None
230
+ self.test_loader = self._mk_loader(X_test, y_test, batch_size, shuffle=False)
231
+
232
+ # ---------- model/optimizer
233
+ input_dim = X_all.shape[1]
234
+ self.model = Net(input_dim)
235
+ self.optimizer = optim.SGD(self.model.parameters(), lr=0.01)
236
+
237
+ # ---------- attach DP (same behavior as before; only wraps the train loader)
238
+ if self.dp_config and not self._dp_attached:
239
+ try:
240
+ from opacus import PrivacyEngine
241
+ privacy_engine = PrivacyEngine()
242
+ (self.model, self.optimizer, self.train_loader) = privacy_engine.make_private(
243
+ module=self.model,
244
+ optimizer=self.optimizer,
245
+ data_loader=self.train_loader,
246
+ noise_multiplier=self.dp_config.noise_multiplier,
247
+ max_grad_norm=self.dp_config.max_grad_norm,
248
+ secure_rng=self.dp_config.secure_rng,
249
+ )
250
+ self._dp_attached = True
251
+ except ImportError:
252
+ print("Opacus non installé : exécution sans DP.")
253
+
254
+ # ---------- record effective settings
255
+ self.effective_features = feat_cols
256
+ self.effective_target = target_col
257
+ self.effective_val_frac = float(val_frac)
258
+ # effective_test_frac already set above if ID mode; otherwise use the input
259
+ if self.test_ids and self.test_ids.strip():
260
+ pass # Already set
261
+ else:
262
+ self.effective_test_frac = float(test_frac)
263
+
264
+ self._initialized = True
265
+ print(f"[Client] Initialized with features={feat_cols}, target={target_col}, val={val_frac}, test={self.effective_test_frac}")
266
+
267
+ # ---------- FL API (unchanged behavior) ----------
268
+
269
+ def get_parameters(self, config):
270
+ if not self._initialized:
271
+ try:
272
+ self._lazy_init_from_server_config(config if isinstance(config, dict) else {})
273
+ except Exception as e:
274
+ if not self._initialized:
275
+ self._lazy_init_from_server_config({})
276
+ return [val.cpu().numpy() for val in self.model.state_dict().values()]
277
+
278
+ def set_parameters(self, parameters):
279
+ params_dict = zip(self.model.state_dict().keys(), parameters)
280
+ state_dict = {k: torch.tensor(v) for k, v in params_dict}
281
+ self.model.load_state_dict(state_dict, strict=True)
282
+
283
+ def fit(self, parameters, config):
284
+ if not self._initialized:
285
+ self._lazy_init_from_server_config(config)
286
+
287
+ self.set_parameters(parameters)
288
+ self.model.train()
289
+
290
+ local_epochs = config.get("local_epochs", 5)
291
+ total_loss = 0.0
292
+ print(f"Training for {local_epochs} epochs...")
293
+
294
+ for epoch in range(local_epochs):
295
+ print(f"Epoch {epoch + 1}/{local_epochs}")
296
+ for X_batch, y_batch in self.train_loader:
297
+ self.optimizer.zero_grad()
298
+ outputs = self.model(X_batch)
299
+ loss = self.criterion(outputs.squeeze(), y_batch)
300
+ loss.backward()
301
+ self.optimizer.step()
302
+ total_loss += loss.item() * X_batch.size(0)
303
+
304
+ avg_loss = total_loss / (len(self.train_loader.dataset) * local_epochs)
305
+
306
+ with torch.no_grad():
307
+ logits = self.model(self.X_tensor).squeeze()
308
+ probs = torch.sigmoid(logits).cpu().numpy()
309
+ y_true = self.y_tensor.cpu().numpy()
310
+ binary_preds = (probs >= 0.5).astype(int)
311
+ try:
312
+ auc = roc_auc_score(y_true, probs)
313
+ except Exception:
314
+ auc = float("nan")
315
+ acc = accuracy_score(y_true, binary_preds)
316
+
317
+ hostname = socket.gethostname()
318
+ os_type = platform.system()
319
+ metrics = {
320
+ "hostname": hostname,
321
+ "os_type": os_type,
322
+ "train_loss": avg_loss,
323
+ "train_accuracy": acc,
324
+ "train_auc": auc,
325
+ "features": ",".join(self.effective_features),
326
+ "target": self.effective_target,
327
+ "val_fraction": self.effective_val_frac,
328
+ "test_fraction": self.effective_test_frac,
329
+ }
330
+
331
+ return self.get_parameters(config), len(self.train_loader.dataset), metrics
332
+
333
+ def evaluate(self, parameters, config):
334
+ if not self._initialized:
335
+ self._lazy_init_from_server_config(config)
336
+
337
+ self.set_parameters(parameters)
338
+ self.model.eval()
339
+
340
+ total_loss = 0.0
341
+ all_probs, all_true = [], []
342
+ with torch.no_grad():
343
+ for X_batch, y_batch in self.test_loader:
344
+ outputs = self.model(X_batch)
345
+ loss = self.criterion(outputs.squeeze(), y_batch)
346
+ total_loss += loss.item() * X_batch.size(0)
347
+ probs = torch.sigmoid(outputs.squeeze()).cpu().numpy()
348
+ all_probs.extend(probs.tolist())
349
+ all_true.extend(y_batch.cpu().numpy().tolist())
350
+
351
+ avg_loss = total_loss / len(self.test_loader.dataset) if len(self.test_loader.dataset) > 0 else 0.0
352
+ binary_preds = [1 if p >= 0.5 else 0 for p in all_probs]
353
+ try:
354
+ auc = roc_auc_score(all_true, all_probs)
355
+ except Exception:
356
+ auc = float("nan")
357
+ acc = accuracy_score(all_true, binary_preds)
358
+
359
+ metrics = {
360
+ "eval_loss": avg_loss,
361
+ "eval_accuracy": acc,
362
+ "eval_auc": auc,
363
+ }
364
+ print(f"Evaluation metrics: {metrics}")
365
+
366
+ return float(avg_loss), len(self.test_loader.dataset), metrics
367
+
368
+ def get_properties(self, config):
369
+ hostname = socket.gethostname()
370
+ os_type = platform.system()
371
+
372
+ if self._initialized:
373
+ num_samples = int(self.X_tensor.shape[0])
374
+ num_features = int(self.X_tensor.shape[1])
375
+ features_str = ",".join(self.effective_features)
376
+ target_name = self.effective_target
377
+ label_counts = pd.Series(self.y_tensor.numpy()).value_counts().to_dict()
378
+ classes = sorted(label_counts.keys())
379
+ else:
380
+ num_samples = len(self.X_tensor)
381
+ num_features = self.X_tensor.shape[1]
382
+ features_str = ",".join(self.feature_names)
383
+ target_name = self.target_name
384
+ label_counts = self.label_counts
385
+ classes = self.classes
386
+
387
+ classes_str = ",".join(map(str, classes))
388
+ dist_str = ",".join(f"{cls}:{cnt}" for cls, cnt in label_counts.items())
389
+
390
+ cpu_physical = psutil.cpu_count(logical=False)
391
+ cpu_logical = psutil.cpu_count(logical=True)
392
+ total_mem_gb = round(psutil.virtual_memory().total / (1024**3), 2)
393
+ driver_present = shutil.which('nvidia-smi') is not None
394
+ gpu_count = 0
395
+ if GPUtil and driver_present:
396
+ try:
397
+ gpu_count = len(GPUtil.getGPUs())
398
+ except Exception:
399
+ gpu_count = 0
400
+
401
+ return {
402
+ "hostname": hostname,
403
+ "os_type": os_type,
404
+ "num_samples": num_samples,
405
+ "num_features": num_features,
406
+ "features": features_str,
407
+ "target": target_name,
408
+ "classes": classes_str,
409
+ "label_distribution": dist_str,
410
+ "cpu_physical_cores": cpu_physical,
411
+ "cpu_logical_cores": cpu_logical,
412
+ "total_memory_gb": total_mem_gb,
413
+ "gpu_driver_present": str(driver_present),
414
+ "gpu_count": gpu_count,
415
+ }
416
+
417
+ def start(self) -> None:
418
+ fl.client.start_numpy_client(
419
+ server_address=self.server_address,
420
+ client=self,
421
+ )
@@ -134,9 +134,8 @@ class Net(nn.Module):
134
134
 
135
135
  @torch.no_grad()
136
136
  def predict(self, x: torch.Tensor) -> torch.Tensor:
137
- """Apply appropriate post-processing for predictions."""
138
- logits = self.forward(x) if self.return_logits else x
139
- probs = self._apply_output_activation(logits) if self.return_logits else logits
137
+ out = self.forward(x) # always run forward
138
+ probs = self._apply_output_activation(out) if self.return_logits else out
140
139
  if self.task == "binary":
141
140
  return (probs >= 0.5).long()
142
141
  elif self.task == "multiclass":
@@ -145,3 +144,4 @@ class Net(nn.Module):
145
144
  return (probs >= 0.5).long()
146
145
  elif self.task == "regression":
147
146
  return probs
147
+