MEDfl 2.0.4.dev7__tar.gz → 2.0.4.dev8__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.
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/rw/client.py +108 -51
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/rw/strategy.py +19 -19
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl.egg-info/PKG-INFO +1 -1
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/PKG-INFO +1 -1
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/setup.py +1 -1
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.github/workflows/main.yml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.gitignore +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.idea/.gitignore +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.idea/MEDfl.iml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.idea/misc.xml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.idea/modules.xml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/.idea/vcs.xml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/LICENSE +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/client.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/dynamicModal.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/federated_dataset.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/flpipeline.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/model.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/params.yaml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/params_optimiser.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/plot.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/server.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/strategy.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/LearningManager/utils.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/database_connector.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/dataset.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/flsetup.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/net_helper.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/net_manager_queries.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/network.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/NetManager/node.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/rw/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/rw/model.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/rw/server.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/scripts/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/scripts/base.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl/scripts/create_db.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl.egg-info/SOURCES.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl.egg-info/dependency_links.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl.egg-info/requires.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/MEDfl.egg-info/top_level.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/README.md +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/README +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/__pycache__/env.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/alembic_logging.ini +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/debug.log +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/env.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/script.py.mako +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/versions/__pycache__/b159ee510a90_initial.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic/versions/b159ee510a90_initial.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/alembic.ini +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/Makefile +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.buildinfo +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.doctrees/Medfl.LearningManager.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.doctrees/Medfl.NetManager.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.doctrees/Medfl.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.doctrees/environment.pickle +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.doctrees/index.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.doctrees/modules.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/.nojekyll +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/Medfl.LearningManager.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/Medfl.NetManager.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/Medfl.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/client.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/dynamicModal.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/federated_dataset.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/flpipeline.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/model.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/plot.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/server.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/strategy.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/utils.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/NetManager/dataset.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/NetManager/flsetup.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/NetManager/net_helper.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/NetManager/network.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/NetManager/node.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/index.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_sources/Medfl.LearningManager.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_sources/Medfl.NetManager.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_sources/Medfl.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_sources/index.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_sources/modules.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/MEDomics.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/basic.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/badge_only.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-bold-italic.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-bold.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-bold.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-normal-italic.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-normal.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/lato-normal.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/theme.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/dark_mode_css/custom.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/dark_mode_css/dark.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/dark_mode_css/general.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/dark_mode_js/default_dark.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/dark_mode_js/default_light.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/dark_mode_js/theme_switcher.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/doctools.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/documentation_options.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/file.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/jquery.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/js/badge_only.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/js/html5shiv-printshiv.min.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/js/html5shiv.min.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/js/theme.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/language_data.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/minus.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/plus.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/pygments.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/searchtools.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/sphinx_highlight.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/genindex.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/index.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/modules.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/objects.inv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/py-modindex.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/search.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/searchindex.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/Documentation.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/Installation.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/Medfl.LearningManager.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/Medfl.NetManager.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/Medfl.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/configuration_file.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/environment.pickle +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/index.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/modules.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/doctrees/tutorials.doctree +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/.buildinfo +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/.nojekyll +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/Documentation.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/Installation.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/Medfl.LearningManager.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/Medfl.NetManager.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/Medfl.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/FTL_comp.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/LearningManager.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/MEDfl_Diagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/NetManager_Diagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/learningresults.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/mysqllogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/phpmyadmin.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/wampLogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_images/xampplogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_modules/index.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/Documentation.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/Installation.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/Medfl.LearningManager.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/Medfl.NetManager.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/Medfl.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/configuration_file.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/index.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/modules.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_sources/tutorials.rst.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/MEDomics.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/basic.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/badge_only.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/css/theme.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/custom.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/dark_mode_css/custom.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/dark_mode_css/dark.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/dark_mode_css/general.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/dark_mode_js/default_dark.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/dark_mode_js/default_light.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/dark_mode_js/theme_switcher.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/doctools.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/documentation_options.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/file.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/jquery-3.6.0.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/jquery.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/js/badge_only.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/js/html5shiv-printshiv.min.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/js/html5shiv.min.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/js/theme.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/language_data.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/minus.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/plus.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/pygments.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/searchtools.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/sphinx_highlight.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/underscore-1.13.1.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/_static/underscore.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/configuration_file.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/genindex.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/index.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/modules.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/objects.inv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/py-modindex.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/search.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/searchindex.js +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/build/html/tutorials.html +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/make.bat +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/Documentation.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/Installation.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/Medfl.LearningManager.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/Medfl.NetManager.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/Medfl.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/_static/custom.css +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/conf.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/configuration_file.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/FL_gen.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/FTL_comp.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/FlDatasetDiagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/GDP.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/LDP.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/LearningManager.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/MEDfl_Diagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/Modelinit.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/NetManager_Diagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/NetworkCreation.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/createServer.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/learningresults.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/logos/mysqllogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/logos/phpmyadmin.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/logos/wampLogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/logos/xampplogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/modeltest.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/netMan.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/nodecreation.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/pipeline.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/Images/strategy.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/figures/MEDomics.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/index.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/modules.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/source/tutorials.rst +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/global_params.yaml +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/medfl.egg-info/PKG-INFO +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/medfl.egg-info/SOURCES.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/medfl.egg-info/dependency_links.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/medfl.egg-info/requires.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/medfl.egg-info/top_level.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/.ipynb_checkpoints/trainedModels/binary_classifier.pth +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/.ipynb_checkpoints/trainedModels/eicu_binary_classifier.pth +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/.ipynb_checkpoints/trainedModels/grid_search_classifier.pth +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/.ipynb_checkpoints/trainedModels/new_binary_classifier.pth +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/.ipynb_checkpoints/trainedModels/updated_model.pth +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/First_Tuto.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/FL_gen.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/FTL_comp.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/FlDatasetDiagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/GDP.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/LDP.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/LearningManager.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/MEDfl_Diagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/MEDfl_bachmarking_plan.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/Modelinit.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/NetManager_Diagramm.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/NetworkCreation.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/createServer.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/learningresults.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/logos/mysqllogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/logos/phpmyadmin.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/logos/wampLogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/logos/xampplogo.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/modeltest.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/netMan.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/nodecreation.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/optuna_optim_diag.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/pipeline.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/Images/strategy.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/MEDfl_benchmarks.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/banchmarking_plan.md +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/benchmarks_results.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/network_architecture/net_bachmarking_conf_1.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/network_architecture/net_bachmarking_conf_2.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/transfer_learning/TL_activated.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/banchmarking/transfer_learning/TL_dectivated.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/chunk_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/chunk_2.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/chunk_3.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/config_1/part_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/config_1/part_2.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/config_1/part_3.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/config_1/test_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/config_1/test_2.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/eicu_sapsii_data.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/eicu_sapsii_data_test.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/eicu_sapsii_data_test_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/masterDataSet/Mimic_ouael.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/masterDataSet/Mimic_train.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/masterDataSet/eICU.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/nodesData/output_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/nodesData/output_2.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/nodesData/output_3.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/nodesData/output_4.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/nodesData/output_5.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/test_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/test_2.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/test_3.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/data/validation/Mimic_validation.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/eicu_test.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/eicu_test_1.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/eicu_test_2.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/eicu_test_3.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/sapsii_score_knnimputed_eicu.csv +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/1_DB.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/2_NetManager.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/3_TransferLearning copy.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/3_TransferLearning.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/4_LearningManager.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/5_LearningResults.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/6_ModelChoice.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/7_ParamsOptimiser.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/8_complete_tutorial.ipynb +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/newplot2.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/notebooks/tutorial/newplot4.png +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/requirements.txt +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/setup.cfg +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/setup_mysql.sh +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__init__.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__pycache__/test_dataset.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__pycache__/test_federated_dataset.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__pycache__/test_flpipeline.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__pycache__/test_flsetup.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__pycache__/test_network.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/__pycache__/test_node.cpython-38.pyc +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/test_dataset.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/test_federated_dataset.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/test_flpipeline.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/test_flsetup.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/test_network.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/tests/test_node.py +0 -0
- {medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/workflows/migration.yml +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# client.py
|
|
2
|
+
|
|
2
3
|
import argparse
|
|
3
4
|
import pandas as pd
|
|
4
5
|
import flwr as fl
|
|
@@ -7,11 +8,18 @@ import torch.nn as nn
|
|
|
7
8
|
import torch.optim as optim
|
|
8
9
|
from torch.utils.data import TensorDataset, DataLoader
|
|
9
10
|
from sklearn.metrics import accuracy_score, roc_auc_score
|
|
10
|
-
from model import Net #
|
|
11
|
+
from MEDfl.rw.model import Net # votre définition de modèle
|
|
11
12
|
import socket
|
|
12
|
-
import platform
|
|
13
|
+
import platform
|
|
14
|
+
import psutil
|
|
15
|
+
import shutil
|
|
16
|
+
|
|
17
|
+
try:
|
|
18
|
+
import GPUtil
|
|
19
|
+
except ImportError:
|
|
20
|
+
GPUtil = None
|
|
21
|
+
|
|
13
22
|
|
|
14
|
-
# Differential Privacy configuration class
|
|
15
23
|
class DPConfig:
|
|
16
24
|
"""
|
|
17
25
|
Configuration for differential privacy.
|
|
@@ -20,8 +28,9 @@ class DPConfig:
|
|
|
20
28
|
noise_multiplier (float): Noise multiplier for DP.
|
|
21
29
|
max_grad_norm (float): Maximum gradient norm for clipping.
|
|
22
30
|
batch_size (int): Batch size for training.
|
|
23
|
-
secure_rng (bool):
|
|
31
|
+
secure_rng (bool): Use a secure random generator.
|
|
24
32
|
"""
|
|
33
|
+
|
|
25
34
|
def __init__(
|
|
26
35
|
self,
|
|
27
36
|
noise_multiplier: float = 1.0,
|
|
@@ -44,37 +53,44 @@ class FlowerClient(fl.client.NumPyClient):
|
|
|
44
53
|
):
|
|
45
54
|
self.server_address = server_address
|
|
46
55
|
|
|
47
|
-
# 1
|
|
56
|
+
# 1) Chargement des données
|
|
48
57
|
df = pd.read_csv(data_path)
|
|
49
58
|
X = df.iloc[:, :-1].values
|
|
50
59
|
y = df.iloc[:, -1].values
|
|
51
60
|
|
|
52
|
-
#
|
|
61
|
+
# Métadonnées pour get_properties()
|
|
62
|
+
self.feature_names = df.columns[:-1].tolist()
|
|
63
|
+
self.target_name = df.columns[-1]
|
|
64
|
+
self.label_counts = df[self.target_name].value_counts().to_dict()
|
|
65
|
+
self.classes = sorted(self.label_counts.keys())
|
|
66
|
+
|
|
67
|
+
# Tenseurs pour les métriques
|
|
53
68
|
self.X_tensor = torch.tensor(X, dtype=torch.float32)
|
|
54
69
|
self.y_tensor = torch.tensor(y, dtype=torch.float32)
|
|
55
70
|
|
|
56
|
-
#
|
|
71
|
+
# 2) DataLoader
|
|
57
72
|
batch_size = dp_config.batch_size if dp_config else 32
|
|
58
73
|
dataset = TensorDataset(self.X_tensor, self.y_tensor)
|
|
59
74
|
self.train_loader = DataLoader(dataset, batch_size=batch_size, shuffle=True)
|
|
60
75
|
|
|
61
|
-
#
|
|
76
|
+
# 3) Modèle, critère, optimiseur
|
|
62
77
|
input_dim = X.shape[1]
|
|
63
78
|
self.model = Net(input_dim)
|
|
64
|
-
|
|
65
79
|
self.criterion = nn.BCEWithLogitsLoss()
|
|
66
80
|
self.optimizer = optim.SGD(self.model.parameters(), lr=0.01)
|
|
67
81
|
|
|
68
|
-
#
|
|
82
|
+
# 4) Configuration DP (Opacus)
|
|
69
83
|
self.privacy_engine = None
|
|
70
|
-
if dp_config
|
|
84
|
+
if dp_config:
|
|
71
85
|
try:
|
|
72
86
|
from opacus import PrivacyEngine
|
|
73
87
|
|
|
74
|
-
# Instantiate engine without secure_rng argument
|
|
75
88
|
self.privacy_engine = PrivacyEngine()
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
(
|
|
90
|
+
self.model,
|
|
91
|
+
self.optimizer,
|
|
92
|
+
self.train_loader,
|
|
93
|
+
) = self.privacy_engine.make_private(
|
|
78
94
|
module=self.model,
|
|
79
95
|
optimizer=self.optimizer,
|
|
80
96
|
data_loader=self.train_loader,
|
|
@@ -83,7 +99,7 @@ class FlowerClient(fl.client.NumPyClient):
|
|
|
83
99
|
secure_rng=dp_config.secure_rng,
|
|
84
100
|
)
|
|
85
101
|
except ImportError:
|
|
86
|
-
print("Opacus
|
|
102
|
+
print("Opacus non installé : exécution sans DP.")
|
|
87
103
|
|
|
88
104
|
def get_parameters(self, config):
|
|
89
105
|
return [val.cpu().numpy() for val in self.model.state_dict().values()]
|
|
@@ -94,21 +110,26 @@ class FlowerClient(fl.client.NumPyClient):
|
|
|
94
110
|
self.model.load_state_dict(state_dict, strict=True)
|
|
95
111
|
|
|
96
112
|
def fit(self, parameters, config):
|
|
97
|
-
# Update model parameters
|
|
98
113
|
self.set_parameters(parameters)
|
|
99
114
|
self.model.train()
|
|
100
115
|
|
|
116
|
+
local_epochs = config.get("local_epochs", 5)
|
|
101
117
|
total_loss = 0.0
|
|
102
|
-
for
|
|
103
|
-
self.optimizer.zero_grad()
|
|
104
|
-
outputs = self.model(X_batch)
|
|
105
|
-
loss = self.criterion(outputs.squeeze(), y_batch)
|
|
106
|
-
loss.backward()
|
|
107
|
-
self.optimizer.step()
|
|
108
|
-
total_loss += loss.item() * X_batch.size(0)
|
|
118
|
+
print(f"Training for {local_epochs} epochs...")
|
|
109
119
|
|
|
110
|
-
|
|
111
|
-
|
|
120
|
+
for epoch in range(local_epochs):
|
|
121
|
+
print(f"Epoch {epoch + 1}/{local_epochs}")
|
|
122
|
+
for X_batch, y_batch in self.train_loader:
|
|
123
|
+
self.optimizer.zero_grad()
|
|
124
|
+
outputs = self.model(X_batch)
|
|
125
|
+
loss = self.criterion(outputs.squeeze(), y_batch)
|
|
126
|
+
loss.backward()
|
|
127
|
+
self.optimizer.step()
|
|
128
|
+
total_loss += loss.item() * X_batch.size(0)
|
|
129
|
+
|
|
130
|
+
avg_loss = total_loss / (len(self.train_loader.dataset) * local_epochs)
|
|
131
|
+
|
|
132
|
+
# Compute metrics after last epoch
|
|
112
133
|
with torch.no_grad():
|
|
113
134
|
logits = self.model(self.X_tensor).squeeze()
|
|
114
135
|
probs = torch.sigmoid(logits).cpu().numpy()
|
|
@@ -116,21 +137,25 @@ class FlowerClient(fl.client.NumPyClient):
|
|
|
116
137
|
binary_preds = (probs >= 0.5).astype(int)
|
|
117
138
|
acc = accuracy_score(y_true, binary_preds)
|
|
118
139
|
auc = roc_auc_score(y_true, probs)
|
|
119
|
-
|
|
140
|
+
|
|
120
141
|
hostname = socket.gethostname()
|
|
121
142
|
os_type = platform.system()
|
|
143
|
+
metrics = {
|
|
144
|
+
"hostname": hostname,
|
|
145
|
+
"os_type": os_type,
|
|
146
|
+
"train_loss": avg_loss,
|
|
147
|
+
"train_accuracy": acc,
|
|
148
|
+
"train_auc": auc,
|
|
149
|
+
}
|
|
122
150
|
|
|
123
|
-
metrics = {"hostname": hostname, "train_loss": avg_loss, "train_accuracy": acc, "train_auc": auc , "os_type": os_type}
|
|
124
151
|
return self.get_parameters(config), len(self.train_loader.dataset), metrics
|
|
125
152
|
|
|
126
153
|
def evaluate(self, parameters, config):
|
|
127
|
-
# Update model parameters
|
|
128
154
|
self.set_parameters(parameters)
|
|
129
155
|
self.model.eval()
|
|
130
156
|
|
|
131
157
|
total_loss = 0.0
|
|
132
|
-
all_probs = []
|
|
133
|
-
all_true = []
|
|
158
|
+
all_probs, all_true = [], []
|
|
134
159
|
with torch.no_grad():
|
|
135
160
|
for X_batch, y_batch in self.train_loader:
|
|
136
161
|
outputs = self.model(X_batch)
|
|
@@ -145,73 +170,105 @@ class FlowerClient(fl.client.NumPyClient):
|
|
|
145
170
|
acc = accuracy_score(all_true, binary_preds)
|
|
146
171
|
auc = roc_auc_score(all_true, all_probs)
|
|
147
172
|
|
|
148
|
-
metrics = {
|
|
173
|
+
metrics = {
|
|
174
|
+
"eval_loss": avg_loss,
|
|
175
|
+
"eval_accuracy": acc,
|
|
176
|
+
"eval_auc": auc,
|
|
177
|
+
}
|
|
149
178
|
print(f"Evaluation metrics: {metrics}")
|
|
179
|
+
|
|
150
180
|
return float(avg_loss), len(self.train_loader.dataset), metrics
|
|
151
|
-
|
|
152
|
-
# client.py - Update the get_properties method
|
|
181
|
+
|
|
153
182
|
def get_properties(self, config):
|
|
154
183
|
"""
|
|
155
184
|
Return dataset statistics before training starts.
|
|
156
|
-
|
|
157
|
-
NOTE: Only scalar values (int, float, str, bool, bytes) are allowed.
|
|
158
|
-
Lists will cause the “not a 1:1 mapping” TypeError.
|
|
185
|
+
Only scalar values allowed (int, float, str, bool, bytes).
|
|
159
186
|
"""
|
|
187
|
+
hostname = socket.gethostname()
|
|
188
|
+
os_type = platform.system()
|
|
160
189
|
num_samples = len(self.X_tensor)
|
|
161
190
|
num_features = self.X_tensor.shape[1]
|
|
162
|
-
# Convert list to comma‑separated string
|
|
163
|
-
column_names = [f"feature_{i}" for i in range(num_features)]
|
|
164
|
-
columns_str = ",".join(column_names)
|
|
165
191
|
|
|
166
|
-
|
|
167
|
-
|
|
192
|
+
features_str = ",".join(self.feature_names)
|
|
193
|
+
classes_str = ",".join(map(str, self.classes))
|
|
194
|
+
dist_str = ",".join(f"{cls}:{cnt}" for cls, cnt in self.label_counts.items())
|
|
195
|
+
|
|
196
|
+
cpu_physical = psutil.cpu_count(logical=False)
|
|
197
|
+
cpu_logical = psutil.cpu_count(logical=True)
|
|
198
|
+
total_mem_gb = round(psutil.virtual_memory().total / (1024**3), 2)
|
|
199
|
+
driver_present = shutil.which('nvidia-smi') is not None
|
|
200
|
+
gpu_count = 0
|
|
201
|
+
if GPUtil and driver_present:
|
|
202
|
+
try:
|
|
203
|
+
gpu_count = len(GPUtil.getGPUs())
|
|
204
|
+
except Exception:
|
|
205
|
+
gpu_count = 0
|
|
168
206
|
|
|
169
207
|
return {
|
|
170
208
|
"hostname": hostname,
|
|
171
209
|
"os_type": os_type,
|
|
172
210
|
"num_samples": num_samples,
|
|
173
211
|
"num_features": num_features,
|
|
174
|
-
"
|
|
212
|
+
"features": features_str,
|
|
213
|
+
"target": self.target_name,
|
|
214
|
+
"classes": classes_str,
|
|
215
|
+
"label_distribution": dist_str,
|
|
216
|
+
"cpu_physical_cores": cpu_physical,
|
|
217
|
+
"cpu_logical_cores": cpu_logical,
|
|
218
|
+
"total_memory_gb": total_mem_gb,
|
|
219
|
+
"gpu_driver_present": str(driver_present),
|
|
220
|
+
"gpu_count": gpu_count,
|
|
175
221
|
}
|
|
176
222
|
|
|
223
|
+
def start(self) -> None:
|
|
224
|
+
"""
|
|
225
|
+
Start this client against its configured server_address.
|
|
226
|
+
Blocks until the server shuts down.
|
|
227
|
+
"""
|
|
228
|
+
fl.client.start_numpy_client(
|
|
229
|
+
server_address=self.server_address,
|
|
230
|
+
client=self,
|
|
231
|
+
)
|
|
232
|
+
|
|
177
233
|
|
|
178
|
-
|
|
179
234
|
if __name__ == "__main__":
|
|
180
|
-
parser = argparse.ArgumentParser(
|
|
235
|
+
parser = argparse.ArgumentParser(
|
|
236
|
+
description="Flower client with DP support and metrics"
|
|
237
|
+
)
|
|
181
238
|
parser.add_argument(
|
|
182
239
|
"--server_address",
|
|
183
240
|
type=str,
|
|
184
241
|
required=True,
|
|
185
|
-
help="
|
|
242
|
+
help="Adresse du serveur Flower (ex : 127.0.0.1:8080)",
|
|
186
243
|
)
|
|
187
244
|
parser.add_argument(
|
|
188
245
|
"--data_path",
|
|
189
246
|
type=str,
|
|
190
247
|
default="data/data.csv",
|
|
191
|
-
help="
|
|
248
|
+
help="Chemin vers les données CSV",
|
|
192
249
|
)
|
|
193
250
|
parser.add_argument(
|
|
194
251
|
"--dp",
|
|
195
252
|
action="store_true",
|
|
196
|
-
help="
|
|
253
|
+
help="Activer la confidentialité différentielle",
|
|
197
254
|
)
|
|
198
255
|
parser.add_argument(
|
|
199
256
|
"--noise_multiplier",
|
|
200
257
|
type=float,
|
|
201
258
|
default=1.0,
|
|
202
|
-
help="Noise multiplier
|
|
259
|
+
help="Noise multiplier pour DP",
|
|
203
260
|
)
|
|
204
261
|
parser.add_argument(
|
|
205
262
|
"--max_grad_norm",
|
|
206
263
|
type=float,
|
|
207
264
|
default=1.0,
|
|
208
|
-
help="
|
|
265
|
+
help="Norme max pour le clipping",
|
|
209
266
|
)
|
|
210
267
|
parser.add_argument(
|
|
211
268
|
"--batch_size",
|
|
212
269
|
type=int,
|
|
213
270
|
default=32,
|
|
214
|
-
help="
|
|
271
|
+
help="Taille du batch",
|
|
215
272
|
)
|
|
216
273
|
args = parser.parse_args()
|
|
217
274
|
|
|
@@ -228,4 +285,4 @@ if __name__ == "__main__":
|
|
|
228
285
|
data_path=args.data_path,
|
|
229
286
|
dp_config=dp_config,
|
|
230
287
|
)
|
|
231
|
-
|
|
288
|
+
client.start()
|
|
@@ -96,29 +96,29 @@ class Strategy:
|
|
|
96
96
|
return agg_params, metrics
|
|
97
97
|
strat.aggregate_fit = logged_agg_fit
|
|
98
98
|
|
|
99
|
-
original_handle_fit = strat.handle_fit
|
|
100
|
-
def realtime_handle_fit(server_round, results, failures):
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
# original_handle_fit = strat.handle_fit
|
|
100
|
+
# def realtime_handle_fit(server_round, results, failures):
|
|
101
|
+
# with self.lock:
|
|
102
|
+
# for client_id, fit_res in results:
|
|
103
|
+
# if client_id.cid not in self.current_round_results[server_round]:
|
|
104
|
+
# # New completion
|
|
105
|
+
# completion_time = time.time()
|
|
106
|
+
# self.current_round_results[server_round][client_id.cid] = completion_time
|
|
107
107
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
# # Get current leader
|
|
109
|
+
# times = self.current_round_results[server_round]
|
|
110
|
+
# if times:
|
|
111
|
+
# leader = min(times, key=times.get)
|
|
112
|
+
# lead_time = times[leader]
|
|
113
|
+
# delay = completion_time - lead_time
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
# print(f"[Server] 🚦 Round {server_round} - "
|
|
116
|
+
# f"Client {client_id.cid} finished: "
|
|
117
|
+
# f"{'🏁 FIRST' if delay == 0 else f'+{delay:.2f}s'}")
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
# return original_handle_fit(server_round, results, failures)
|
|
120
120
|
|
|
121
|
-
strat.handle_fit = realtime_handle_fit
|
|
121
|
+
# strat.handle_fit = realtime_handle_fit
|
|
122
122
|
|
|
123
123
|
# Wrap aggregate_evaluate to log metrics
|
|
124
124
|
original_agg_eval = strat.aggregate_evaluate
|
|
@@ -14,7 +14,7 @@ with open('requirements.txt') as f:
|
|
|
14
14
|
|
|
15
15
|
setup(
|
|
16
16
|
name="MEDfl",
|
|
17
|
-
version="2.0.4.
|
|
17
|
+
version="2.0.4.dev8",
|
|
18
18
|
author="MEDomics consortium",
|
|
19
19
|
author_email="medomics.info@gmail.com",
|
|
20
20
|
description="Python Open-source package for simulating federated learning and differential privacy",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/client.html
RENAMED
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/dynamicModal.html
RENAMED
|
File without changes
|
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/flpipeline.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/server.html
RENAMED
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_modules/Medfl/LearningManager/strategy.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/_sphinx_javascript_frameworks_compat.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff
RENAMED
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.woff
RENAMED
|
File without changes
|
{medfl-2.0.4.dev7 → medfl-2.0.4.dev8}/docs/_build/_static/css/fonts/fontawesome-webfont.woff2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|