From 23851deba881146aa70fd9913c2db62e798022ed Mon Sep 17 00:00:00 2001 From: Ouael SAHBI Date: Mon, 24 Nov 2025 10:46:20 -0500 Subject: [PATCH 1/2] Adding the documentation --- .gitignore | 2 - .readthedocs.yml | 35 + MEDfl.egg-info/PKG-INFO | 35 +- MEDfl/rw/client.py | 684 ++--- MEDfl/rw/model.py | 52 +- MEDfl/rw/server.py | 19 +- MEDfl/rw/strategy.py | 565 ++-- build/lib/MEDfl/LearningManager/__init__.py | 13 + build/lib/MEDfl/LearningManager/client.py | 150 + .../lib/MEDfl/LearningManager/dynamicModal.py | 287 ++ .../LearningManager/federated_dataset.py | 60 + build/lib/MEDfl/LearningManager/flpipeline.py | 192 ++ build/lib/MEDfl/LearningManager/model.py | 224 ++ build/lib/MEDfl/LearningManager/params.yaml | 14 + .../MEDfl/LearningManager/params_optimiser.py | 442 +++ build/lib/MEDfl/LearningManager/plot.py | 229 ++ build/lib/MEDfl/LearningManager/server.py | 181 ++ build/lib/MEDfl/LearningManager/strategy.py | 82 + build/lib/MEDfl/LearningManager/utils.py | 331 ++ build/lib/MEDfl/NetManager/__init__.py | 10 + .../MEDfl/NetManager/database_connector.py | 45 + build/lib/MEDfl/NetManager/dataset.py | 92 + build/lib/MEDfl/NetManager/flsetup.py | 320 ++ build/lib/MEDfl/NetManager/net_helper.py | 254 ++ .../MEDfl/NetManager/net_manager_queries.py | 142 + build/lib/MEDfl/NetManager/network.py | 194 ++ build/lib/MEDfl/NetManager/node.py | 184 ++ build/lib/MEDfl/__init__.py | 4 + build/lib/MEDfl/rw/__init__.py | 0 build/lib/MEDfl/rw/client.py | 421 +++ build/lib/MEDfl/rw/model.py | 147 + build/lib/MEDfl/rw/server.py | 134 + build/lib/MEDfl/rw/strategy.py | 302 ++ build/lib/MEDfl/scripts/__init__.py | 2 + build/lib/MEDfl/scripts/base.py | 30 + build/lib/MEDfl/scripts/create_db.py | 126 + build/lib/alembic/__init__.py | 0 build/lib/alembic/env.py | 61 + docs/Makefile | 20 + docs/_build/.buildinfo | 4 + .../.doctrees/Medfl.LearningManager.doctree | Bin 0 -> 381630 bytes .../_build/.doctrees/Medfl.NetManager.doctree | Bin 0 -> 195199 bytes docs/_build/.doctrees/Medfl.doctree | Bin 0 -> 3516 bytes docs/_build/.doctrees/environment.pickle | Bin 0 -> 992038 bytes docs/_build/.doctrees/index.doctree | Bin 0 -> 5081 bytes docs/_build/.doctrees/modules.doctree | Bin 0 -> 2738 bytes docs/_build/.nojekyll | 0 docs/_build/Medfl.LearningManager.html | 1366 +++++++++ docs/_build/Medfl.NetManager.html | 840 ++++++ docs/_build/Medfl.html | 362 +++ .../Medfl/LearningManager/client.html | 262 ++ .../Medfl/LearningManager/dynamicModal.html | 424 +++ .../LearningManager/federated_dataset.html | 179 ++ .../Medfl/LearningManager/flpipeline.html | 312 ++ .../_modules/Medfl/LearningManager/model.html | 340 +++ .../_modules/Medfl/LearningManager/plot.html | 357 +++ .../Medfl/LearningManager/server.html | 300 ++ .../Medfl/LearningManager/strategy.html | 185 ++ .../_modules/Medfl/LearningManager/utils.html | 355 +++ .../_modules/Medfl/NetManager/dataset.html | 222 ++ .../_modules/Medfl/NetManager/flsetup.html | 447 +++ .../_modules/Medfl/NetManager/net_helper.html | 380 +++ .../_modules/Medfl/NetManager/network.html | 303 ++ .../_modules/Medfl/NetManager/node.html | 330 ++ docs/_build/_modules/index.html | 123 + .../_sources/Medfl.LearningManager.rst.txt | 85 + docs/_build/_sources/Medfl.NetManager.rst.txt | 61 + docs/_build/_sources/Medfl.rst.txt | 19 + docs/_build/_sources/index.rst.txt | 20 + docs/_build/_sources/modules.rst.txt | 7 + docs/_build/_static/MEDomics.png | Bin 0 -> 128504 bytes .../_sphinx_javascript_frameworks_compat.js | 123 + docs/_build/_static/basic.css | 925 ++++++ docs/_build/_static/css/badge_only.css | 1 + .../_static/css/fonts/Roboto-Slab-Bold.woff | Bin 0 -> 87624 bytes .../_static/css/fonts/Roboto-Slab-Bold.woff2 | Bin 0 -> 67312 bytes .../css/fonts/Roboto-Slab-Regular.woff | Bin 0 -> 86288 bytes .../css/fonts/Roboto-Slab-Regular.woff2 | Bin 0 -> 66444 bytes .../_static/css/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes .../_static/css/fonts/fontawesome-webfont.svg | 2671 +++++++++++++++++ .../_static/css/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes .../css/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes .../css/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../_static/css/fonts/lato-bold-italic.woff | Bin 0 -> 323344 bytes .../_static/css/fonts/lato-bold-italic.woff2 | Bin 0 -> 193308 bytes docs/_build/_static/css/fonts/lato-bold.woff | Bin 0 -> 309728 bytes docs/_build/_static/css/fonts/lato-bold.woff2 | Bin 0 -> 184912 bytes .../_static/css/fonts/lato-normal-italic.woff | Bin 0 -> 328412 bytes .../css/fonts/lato-normal-italic.woff2 | Bin 0 -> 195704 bytes .../_build/_static/css/fonts/lato-normal.woff | Bin 0 -> 309192 bytes .../_static/css/fonts/lato-normal.woff2 | Bin 0 -> 182708 bytes docs/_build/_static/css/theme.css | 4 + docs/_build/_static/dark_mode_css/custom.css | 77 + docs/_build/_static/dark_mode_css/dark.css | 520 ++++ docs/_build/_static/dark_mode_css/general.css | 68 + .../_static/dark_mode_js/default_dark.js | 13 + .../_static/dark_mode_js/default_light.js | 13 + .../_static/dark_mode_js/theme_switcher.js | 39 + docs/_build/_static/doctools.js | 156 + docs/_build/_static/documentation_options.js | 13 + docs/_build/_static/file.png | Bin 0 -> 286 bytes docs/_build/_static/jquery.js | 2 + docs/_build/_static/js/badge_only.js | 1 + .../_static/js/html5shiv-printshiv.min.js | 4 + docs/_build/_static/js/html5shiv.min.js | 4 + docs/_build/_static/js/theme.js | 1 + docs/_build/_static/language_data.js | 199 ++ docs/_build/_static/minus.png | Bin 0 -> 90 bytes docs/_build/_static/plus.png | Bin 0 -> 90 bytes docs/_build/_static/pygments.css | 75 + docs/_build/_static/searchtools.js | 574 ++++ docs/_build/_static/sphinx_highlight.js | 154 + docs/_build/genindex.html | 751 +++++ docs/_build/index.html | 133 + docs/_build/modules.html | 157 + docs/_build/objects.inv | Bin 0 -> 1942 bytes docs/_build/py-modindex.html | 214 ++ docs/_build/search.html | 129 + docs/_build/searchindex.js | 1 + docs/build/doctrees/Documentation.doctree | Bin 0 -> 3392 bytes docs/build/doctrees/Installation.doctree | Bin 0 -> 6070 bytes .../doctrees/MEDfl.LearningManager.doctree | Bin 0 -> 405502 bytes docs/build/doctrees/MEDfl.NetManager.doctree | Bin 0 -> 209409 bytes docs/build/doctrees/Medfl.doctree | Bin 0 -> 3564 bytes .../build/doctrees/configuration_file.doctree | Bin 0 -> 8472 bytes docs/build/doctrees/environment.pickle | Bin 0 -> 272070 bytes docs/build/doctrees/index.doctree | Bin 0 -> 6409 bytes docs/build/doctrees/modules.doctree | Bin 0 -> 2695 bytes docs/build/doctrees/tutorials.doctree | Bin 0 -> 42749 bytes docs/make.bat | 35 + docs/source/Documentation.rst | 17 + docs/source/Installation.rst | 28 + docs/source/MEDfl.LearningManager.rst | 85 + docs/source/MEDfl.NetManager.rst | 61 + docs/source/Medfl.rst | 19 + docs/source/_static/custom.css | 8 + docs/source/conf.py | 172 ++ docs/source/configuration_file.rst | 61 + docs/source/figures/Images/FL_gen.png | Bin 0 -> 176770 bytes docs/source/figures/Images/FTL_comp.png | Bin 0 -> 99984 bytes .../figures/Images/FlDatasetDiagramm.png | Bin 0 -> 45939 bytes docs/source/figures/Images/GDP.png | Bin 0 -> 185987 bytes docs/source/figures/Images/LDP.png | Bin 0 -> 152755 bytes .../source/figures/Images/LearningManager.png | Bin 0 -> 250662 bytes docs/source/figures/Images/MEDfl_Diagramm.png | Bin 0 -> 39113 bytes docs/source/figures/Images/Modelinit.png | Bin 0 -> 115345 bytes .../figures/Images/NetManager_Diagramm.png | Bin 0 -> 231456 bytes .../source/figures/Images/NetworkCreation.png | Bin 0 -> 18446 bytes docs/source/figures/Images/createServer.png | Bin 0 -> 38373 bytes .../source/figures/Images/learningresults.png | Bin 0 -> 75139 bytes .../source/figures/Images/logos/mysqllogo.png | Bin 0 -> 8666 bytes .../figures/Images/logos/phpmyadmin.png | Bin 0 -> 7075 bytes docs/source/figures/Images/logos/wampLogo.png | Bin 0 -> 2827 bytes .../source/figures/Images/logos/xampplogo.png | Bin 0 -> 2191 bytes docs/source/figures/Images/modeltest.png | Bin 0 -> 27655 bytes docs/source/figures/Images/netMan.png | Bin 0 -> 13971 bytes docs/source/figures/Images/nodecreation.png | Bin 0 -> 27192 bytes docs/source/figures/Images/pipeline.png | Bin 0 -> 29150 bytes docs/source/figures/Images/strategy.png | Bin 0 -> 46209 bytes docs/source/figures/MEDomics.png | Bin 0 -> 128504 bytes docs/source/index.rst | 38 + docs/source/modules.rst | 7 + docs/source/tutorials.rst | 211 ++ notebooks/eicu_test_1.csv | 2 +- notebooks/rw/rw_test.ipynb | 689 +++-- setup.py | 2 +- 166 files changed, 20895 insertions(+), 930 deletions(-) create mode 100644 .readthedocs.yml create mode 100644 build/lib/MEDfl/LearningManager/__init__.py create mode 100644 build/lib/MEDfl/LearningManager/client.py create mode 100644 build/lib/MEDfl/LearningManager/dynamicModal.py create mode 100644 build/lib/MEDfl/LearningManager/federated_dataset.py create mode 100644 build/lib/MEDfl/LearningManager/flpipeline.py create mode 100644 build/lib/MEDfl/LearningManager/model.py create mode 100644 build/lib/MEDfl/LearningManager/params.yaml create mode 100644 build/lib/MEDfl/LearningManager/params_optimiser.py create mode 100644 build/lib/MEDfl/LearningManager/plot.py create mode 100644 build/lib/MEDfl/LearningManager/server.py create mode 100644 build/lib/MEDfl/LearningManager/strategy.py create mode 100644 build/lib/MEDfl/LearningManager/utils.py create mode 100644 build/lib/MEDfl/NetManager/__init__.py create mode 100644 build/lib/MEDfl/NetManager/database_connector.py create mode 100644 build/lib/MEDfl/NetManager/dataset.py create mode 100644 build/lib/MEDfl/NetManager/flsetup.py create mode 100644 build/lib/MEDfl/NetManager/net_helper.py create mode 100644 build/lib/MEDfl/NetManager/net_manager_queries.py create mode 100644 build/lib/MEDfl/NetManager/network.py create mode 100644 build/lib/MEDfl/NetManager/node.py create mode 100644 build/lib/MEDfl/__init__.py create mode 100644 build/lib/MEDfl/rw/__init__.py create mode 100644 build/lib/MEDfl/rw/client.py create mode 100644 build/lib/MEDfl/rw/model.py create mode 100644 build/lib/MEDfl/rw/server.py create mode 100644 build/lib/MEDfl/rw/strategy.py create mode 100644 build/lib/MEDfl/scripts/__init__.py create mode 100644 build/lib/MEDfl/scripts/base.py create mode 100644 build/lib/MEDfl/scripts/create_db.py create mode 100644 build/lib/alembic/__init__.py create mode 100644 build/lib/alembic/env.py create mode 100644 docs/Makefile create mode 100644 docs/_build/.buildinfo create mode 100644 docs/_build/.doctrees/Medfl.LearningManager.doctree create mode 100644 docs/_build/.doctrees/Medfl.NetManager.doctree create mode 100644 docs/_build/.doctrees/Medfl.doctree create mode 100644 docs/_build/.doctrees/environment.pickle create mode 100644 docs/_build/.doctrees/index.doctree create mode 100644 docs/_build/.doctrees/modules.doctree create mode 100644 docs/_build/.nojekyll create mode 100644 docs/_build/Medfl.LearningManager.html create mode 100644 docs/_build/Medfl.NetManager.html create mode 100644 docs/_build/Medfl.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/client.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/dynamicModal.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/federated_dataset.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/flpipeline.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/model.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/plot.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/server.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/strategy.html create mode 100644 docs/_build/_modules/Medfl/LearningManager/utils.html create mode 100644 docs/_build/_modules/Medfl/NetManager/dataset.html create mode 100644 docs/_build/_modules/Medfl/NetManager/flsetup.html create mode 100644 docs/_build/_modules/Medfl/NetManager/net_helper.html create mode 100644 docs/_build/_modules/Medfl/NetManager/network.html create mode 100644 docs/_build/_modules/Medfl/NetManager/node.html create mode 100644 docs/_build/_modules/index.html create mode 100644 docs/_build/_sources/Medfl.LearningManager.rst.txt create mode 100644 docs/_build/_sources/Medfl.NetManager.rst.txt create mode 100644 docs/_build/_sources/Medfl.rst.txt create mode 100644 docs/_build/_sources/index.rst.txt create mode 100644 docs/_build/_sources/modules.rst.txt create mode 100644 docs/_build/_static/MEDomics.png create mode 100644 docs/_build/_static/_sphinx_javascript_frameworks_compat.js create mode 100644 docs/_build/_static/basic.css create mode 100644 docs/_build/_static/css/badge_only.css create mode 100644 docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff create mode 100644 docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff2 create mode 100644 docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff create mode 100644 docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff2 create mode 100644 docs/_build/_static/css/fonts/fontawesome-webfont.eot create mode 100644 docs/_build/_static/css/fonts/fontawesome-webfont.svg create mode 100644 docs/_build/_static/css/fonts/fontawesome-webfont.ttf create mode 100644 docs/_build/_static/css/fonts/fontawesome-webfont.woff create mode 100644 docs/_build/_static/css/fonts/fontawesome-webfont.woff2 create mode 100644 docs/_build/_static/css/fonts/lato-bold-italic.woff create mode 100644 docs/_build/_static/css/fonts/lato-bold-italic.woff2 create mode 100644 docs/_build/_static/css/fonts/lato-bold.woff create mode 100644 docs/_build/_static/css/fonts/lato-bold.woff2 create mode 100644 docs/_build/_static/css/fonts/lato-normal-italic.woff create mode 100644 docs/_build/_static/css/fonts/lato-normal-italic.woff2 create mode 100644 docs/_build/_static/css/fonts/lato-normal.woff create mode 100644 docs/_build/_static/css/fonts/lato-normal.woff2 create mode 100644 docs/_build/_static/css/theme.css create mode 100644 docs/_build/_static/dark_mode_css/custom.css create mode 100644 docs/_build/_static/dark_mode_css/dark.css create mode 100644 docs/_build/_static/dark_mode_css/general.css create mode 100644 docs/_build/_static/dark_mode_js/default_dark.js create mode 100644 docs/_build/_static/dark_mode_js/default_light.js create mode 100644 docs/_build/_static/dark_mode_js/theme_switcher.js create mode 100644 docs/_build/_static/doctools.js create mode 100644 docs/_build/_static/documentation_options.js create mode 100644 docs/_build/_static/file.png create mode 100644 docs/_build/_static/jquery.js create mode 100644 docs/_build/_static/js/badge_only.js create mode 100644 docs/_build/_static/js/html5shiv-printshiv.min.js create mode 100644 docs/_build/_static/js/html5shiv.min.js create mode 100644 docs/_build/_static/js/theme.js create mode 100644 docs/_build/_static/language_data.js create mode 100644 docs/_build/_static/minus.png create mode 100644 docs/_build/_static/plus.png create mode 100644 docs/_build/_static/pygments.css create mode 100644 docs/_build/_static/searchtools.js create mode 100644 docs/_build/_static/sphinx_highlight.js create mode 100644 docs/_build/genindex.html create mode 100644 docs/_build/index.html create mode 100644 docs/_build/modules.html create mode 100644 docs/_build/objects.inv create mode 100644 docs/_build/py-modindex.html create mode 100644 docs/_build/search.html create mode 100644 docs/_build/searchindex.js create mode 100644 docs/build/doctrees/Documentation.doctree create mode 100644 docs/build/doctrees/Installation.doctree create mode 100644 docs/build/doctrees/MEDfl.LearningManager.doctree create mode 100644 docs/build/doctrees/MEDfl.NetManager.doctree create mode 100644 docs/build/doctrees/Medfl.doctree create mode 100644 docs/build/doctrees/configuration_file.doctree create mode 100644 docs/build/doctrees/environment.pickle create mode 100644 docs/build/doctrees/index.doctree create mode 100644 docs/build/doctrees/modules.doctree create mode 100644 docs/build/doctrees/tutorials.doctree create mode 100644 docs/make.bat create mode 100644 docs/source/Documentation.rst create mode 100644 docs/source/Installation.rst create mode 100644 docs/source/MEDfl.LearningManager.rst create mode 100644 docs/source/MEDfl.NetManager.rst create mode 100644 docs/source/Medfl.rst create mode 100644 docs/source/_static/custom.css create mode 100644 docs/source/conf.py create mode 100644 docs/source/configuration_file.rst create mode 100644 docs/source/figures/Images/FL_gen.png create mode 100644 docs/source/figures/Images/FTL_comp.png create mode 100644 docs/source/figures/Images/FlDatasetDiagramm.png create mode 100644 docs/source/figures/Images/GDP.png create mode 100644 docs/source/figures/Images/LDP.png create mode 100644 docs/source/figures/Images/LearningManager.png create mode 100644 docs/source/figures/Images/MEDfl_Diagramm.png create mode 100644 docs/source/figures/Images/Modelinit.png create mode 100644 docs/source/figures/Images/NetManager_Diagramm.png create mode 100644 docs/source/figures/Images/NetworkCreation.png create mode 100644 docs/source/figures/Images/createServer.png create mode 100644 docs/source/figures/Images/learningresults.png create mode 100644 docs/source/figures/Images/logos/mysqllogo.png create mode 100644 docs/source/figures/Images/logos/phpmyadmin.png create mode 100644 docs/source/figures/Images/logos/wampLogo.png create mode 100644 docs/source/figures/Images/logos/xampplogo.png create mode 100644 docs/source/figures/Images/modeltest.png create mode 100644 docs/source/figures/Images/netMan.png create mode 100644 docs/source/figures/Images/nodecreation.png create mode 100644 docs/source/figures/Images/pipeline.png create mode 100644 docs/source/figures/Images/strategy.png create mode 100644 docs/source/figures/MEDomics.png create mode 100644 docs/source/index.rst create mode 100644 docs/source/modules.rst create mode 100644 docs/source/tutorials.rst diff --git a/.gitignore b/.gitignore index 58eb08c..497c1c7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,4 @@ __pycache__/ MEDfl.egg-info/ fl-env/ dist/ -build/ notebooks/ -docs/ diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..f5c674f --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,35 @@ +version: 2 + +sphinx: + configuration: docs/source/conf.py + +python: + version: "3.9" + install: + - method: pip + path: . + + + + + + + + + + + + + + + + + + + + + + + + + - requirements: requirements.txt diff --git a/MEDfl.egg-info/PKG-INFO b/MEDfl.egg-info/PKG-INFO index cf5deb1..f9055c3 100644 --- a/MEDfl.egg-info/PKG-INFO +++ b/MEDfl.egg-info/PKG-INFO @@ -1,6 +1,6 @@ -Metadata-Version: 2.1 +Metadata-Version: 2.4 Name: MEDfl -Version: 2.0.5 +Version: 2.0.5.dev4 Summary: Python Open-source package for simulating federated learning and differential privacy Home-page: https://github.com/MEDomics-UdeS/MEDfl Author: MEDomics consortium @@ -17,6 +17,37 @@ Classifier: Programming Language :: Python :: 3.9 Requires-Python: >=3.8,<3.13 Description-Content-Type: text/markdown License-File: LICENSE +Requires-Dist: flwr~=1.18.0 +Requires-Dist: matplotlib~=3.6.3 +Requires-Dist: numpy~=1.26.4 +Requires-Dist: opacus~=1.5.3 +Requires-Dist: pandas~=1.5.2 +Requires-Dist: PyYAML~=6.0 +Requires-Dist: setuptools~=68.0.0 +Requires-Dist: Sphinx~=5.3.0 +Requires-Dist: SQLAlchemy~=1.4.47 +Requires-Dist: torch>=2.7.0 +Requires-Dist: datetime~=5.1 +Requires-Dist: scikit-learn~=1.2.2 +Requires-Dist: sphinx-jsonschema==1.19.1 +Requires-Dist: sphinx-rtd-dark-mode==1.2.4 +Requires-Dist: plotly==5.19.0 +Requires-Dist: optuna==3.5.0 +Requires-Dist: mysql-connector-python~=9.3.0 +Requires-Dist: seaborn~=0.13.2 +Requires-Dist: flwr[simulation] +Dynamic: author +Dynamic: author-email +Dynamic: classifier +Dynamic: description +Dynamic: description-content-type +Dynamic: home-page +Dynamic: keywords +Dynamic: license-file +Dynamic: project-url +Dynamic: requires-dist +Dynamic: requires-python +Dynamic: summary # MEDfl: A Collaborative Framework for Federated Learning in Medicine diff --git a/MEDfl/rw/client.py b/MEDfl/rw/client.py index 7eda953..4fed968 100644 --- a/MEDfl/rw/client.py +++ b/MEDfl/rw/client.py @@ -1,4 +1,4 @@ -# client.py +# File: client.py import argparse import pandas as pd @@ -21,11 +21,6 @@ except ImportError: GPUtil = None -try: - import xgboost as xgb -except Exception: - xgb = None - class DPConfig: """ @@ -40,10 +35,10 @@ class DPConfig: def __init__( self, - noise_multiplier: float = 1.0, - max_grad_norm: float = 1.0, - batch_size: int = 32, - secure_rng: bool = False, + noise_multiplier=1.0, + max_grad_norm=1.0, + batch_size=32, + secure_rng=False, ): self.noise_multiplier = noise_multiplier self.max_grad_norm = max_grad_norm @@ -51,356 +46,346 @@ def __init__( self.secure_rng = secure_rng -def booster_to_parameters(bst): - # Send JSON so the server can merge trees safely - raw = bst.save_raw(raw_format="json") - # NumPyClient expects a list of numpy arrays - return [np.frombuffer(raw, dtype=np.uint8)] - - -def parameters_to_booster(parameters): - # Handle numpy uint8 array or raw bytes/bytearray - buf = parameters[0] - if isinstance(buf, (bytes, bytearray, memoryview)): - raw = bytes(buf) - else: - arr = np.asarray(buf, dtype=np.uint8) - raw = arr.tobytes() - - booster = xgb.Booster() - # xgboost can load both JSON and binary buffers - booster.load_model(bytearray(raw)) - return booster - - class FlowerClient(fl.client.NumPyClient): def __init__( self, - server_address: str, - data_path: str = "data/data.csv", - dp_config: DPConfig = None, - model_type: str = "nn", - xgb_params: dict = None, - xgb_rounds: int = 50, + server_address, + data_path="data/data.csv", + dp_config=None, + # NEW (optional client overrides; do NOT remove old args) + val_frac=None, + test_frac=None, + id_col=None, + test_ids=None, + seed=42, ): self.server_address = server_address - self.model_type = model_type.lower() - self.xgb_params = xgb_params or {} - self.xgb_rounds = xgb_rounds - - # Store hostname for datasetConfig host-specific overrides - self.hostname = socket.gethostname() - - # Load once; keep the DataFrame so we can rebuild splits from config later - self.df = pd.read_csv(data_path) - - # Defaults at startup (can be overridden dynamically from config)' - default_target = self.df.columns[-1] - default_test_size = 0.20 + self.dp_config = dp_config + self.client_val_frac = val_frac + self.client_test_frac = test_frac + self.id_col = id_col + self.test_ids = test_ids + self.seed = seed + + # Load the CSV once; actual column selection happens on first fit using server config + self._df = pd.read_csv(data_path) + + # Defaults used only for get_properties BEFORE first fit (last column target) + self.feature_names = self._df.columns[:-1].tolist() + self.target_name = self._df.columns[-1] + self.label_counts = self._df[self.target_name].value_counts().to_dict() + self.classes = sorted(self.label_counts.keys()) + + # Tensors for metrics before first fit (fallback to all-but-last as features) + X_default = self._df.iloc[:, :-1].values + y_default = self._df.iloc[:, -1].values + self.X_tensor = torch.tensor(X_default, dtype=torch.float32) + self.y_tensor = torch.tensor(y_default, dtype=torch.float32) + + # Placeholders; we lazily build loaders/model on the first fit when we see server config + self.train_loader = None + self.val_loader = None + self.test_loader = None + + self.model = None + self.criterion = nn.BCEWithLogitsLoss() + self.optimizer = None + + # Effective settings (filled at first fit) + self.effective_features = self.feature_names[:] + self.effective_target = self.target_name + self.effective_val_frac = float(self.client_val_frac) if self.client_val_frac is not None else 0.0 + self.effective_test_frac = float(self.client_test_frac) if self.client_test_frac is not None else 0.0 + + self._initialized = False + self._dp_attached = False # to avoid wrapping twice + + # ---------- helpers + + def _mk_loader(self, X, y, batch_size, shuffle): + x_t = torch.tensor(X, dtype=torch.float32) + y_t = torch.tensor(y, dtype=torch.float32) + return DataLoader(TensorDataset(x_t, y_t), batch_size=batch_size, shuffle=shuffle) + + def _lazy_init_from_server_config(self, config): + """ + Build model and (train, val, test) loaders once, using: + - Server-enforced schema: config['features'] (comma-separated), config['target'] + - Split fractions: client overrides win; else use server's val_fraction/test_fraction + - NEW: if config['test_ids'] is set (per-client from strategy), use ID-based split + """ + # ---------- schema from server (enforced if provided) + srv_features = (config.get("features") or "").strip() + srv_target = (config.get("target") or "").strip() + print(f"[Client] Initializing with server schema: features='{srv_features}', target='{srv_target}'") + + if srv_target: + if srv_target not in self._df.columns: + raise ValueError(f"Server-specified target '{srv_target}' not in CSV columns {list(self._df.columns)}") + target_col = srv_target + else: + target_col = self._df.columns[-1] # fallback (keeps backward compatibility) - # Build initial splits/buffers/metadata - self._prepare_splits( - target_name=default_target, - test_size=default_test_size, - dp_config=dp_config, - ) + if srv_features: + feat_cols = [c.strip() for c in srv_features.split(",") if c.strip()] + missing = [c for c in feat_cols if c not in self._df.columns] + if missing: + raise ValueError(f"Server-specified feature(s) not found in CSV: {missing}") + else: + feat_cols = [c for c in self._df.columns if c != target_col] + + # ---------- fractions: client overrides > server defaults > fallback (0.10/0.10) + srv_val = config.get("val_fraction", None) + srv_test = config.get("test_fraction", None) + 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) + 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) + + if not (0.0 <= val_frac < 1.0): + raise ValueError(f"Invalid val_frac: {val_frac} (must be 0 <= val_frac < 1)") + + # ---------- NEW: adopt test_ids / id_col from server config if provided + if (not self.test_ids or not self.test_ids.strip()) and config.get("test_ids"): + + # strategy (per_client) can inject test_ids as list or CSV; normalize to CSV string + ti = config.get("test_ids") + if isinstance(ti, (list, tuple, set)): + self.test_ids = ",".join(str(x) for x in ti) + else: + self.test_ids = str(ti) + + print(f"[Client] Using server-provided test_ids: {self.test_ids}") + + if (not self.id_col) and config.get("id_col"): + self.id_col = str(config.get("id_col")) + + # ---------- extract arrays with the enforced schema + X_all = self._df[feat_cols].values + y_all = self._df[target_col].values + + # Keep tensors for global metrics logging (same behavior as before) + self.X_tensor = torch.tensor(X_all, dtype=torch.float32) + self.y_tensor = torch.tensor(y_all, dtype=torch.float32) + + # ---------- split + if self.test_ids and self.test_ids.strip(): # ID-based mode (unchanged behavior, now also supports server-provided IDs) + print("[Client] Using ID-based test selection") + test_ids_list = [i.strip() for i in self.test_ids.split(',') if i.strip()] + + if self.id_col and self.id_col in self._df.columns: + id_series = self._df[self.id_col] + # Align types between id_series and test_ids_list + if np.issubdtype(id_series.dtype, np.number): + test_ids_list = [int(i) for i in test_ids_list] + else: + test_ids_list = [str(i) for i in test_ids_list] + + else: + print(f"[Client] Falling back to line numbers (index) as IDs since id_col='{self.id_col}' is invalid or not provided") + id_series = self._df.index + try: + test_ids_list = [int(i) for i in test_ids_list] + except ValueError: + raise ValueError("Test IDs must be integers when using line numbers as IDs") + + test_mask = id_series.isin(test_ids_list) + if not test_mask.any(): + print("[Client] Warning: No matching IDs found for test set; it will be empty") + + X_test = X_all[test_mask] + y_test = y_all[test_mask] + X_trval = X_all[~test_mask] + y_trval = y_all[~test_mask] + + actual_test_frac = len(y_test) / len(y_all) if len(y_all) > 0 else 0.0 + if val_frac + actual_test_frac >= 1.0: + raise ValueError(f"Validation fraction {val_frac} + actual test fraction {actual_test_frac} >= 1.0") + + self.effective_test_frac = actual_test_frac # For logging + + else: # Fraction-based mode (existing) + if not (0.0 <= test_frac < 1.0 and (val_frac + test_frac) < 1.0): + raise ValueError(f"Invalid fractions: val={val_frac}, test={test_frac} (require 0 <= val,test < 1 and val+test < 1)") + + strat_all = y_all if len(np.unique(y_all)) > 1 else None + X_trval, X_test, y_trval, y_test = train_test_split( + X_all, y_all, test_size=test_frac, random_state=self.seed, stratify=strat_all + ) - # Apply DP once at startup (NN only) - self.privacy_engine = None - if dp_config and self.model_type == "nn": + # Split val from trval (common to both modes) + if val_frac > 0 and len(y_trval) > 0: + actual_test_frac = len(y_test) / len(y_all) if len(y_all) > 0 else 0.0 + rel_val = val_frac / (1.0 - actual_test_frac) if (1.0 - actual_test_frac) > 0 else 0.0 + strat_tr = y_trval if len(np.unique(y_trval)) > 1 else None + X_train, X_val, y_train, y_val = train_test_split( + X_trval, y_trval, test_size=rel_val, random_state=self.seed, stratify=strat_tr + ) + else: + X_train, y_train = X_trval, y_trval + X_val, y_val = np.empty((0, X_all.shape[1])), np.empty((0,)) + + # ---------- build loaders + batch_size = self.dp_config.batch_size if self.dp_config else 32 + self.train_loader = self._mk_loader(X_train, y_train, batch_size, shuffle=True) + self.val_loader = self._mk_loader(X_val, y_val, batch_size=batch_size, shuffle=False) if len(y_val) else None + self.test_loader = self._mk_loader(X_test, y_test, batch_size, shuffle=False) + + # ---------- model/optimizer + input_dim = X_all.shape[1] + self.model = Net(input_dim) + self.optimizer = optim.SGD(self.model.parameters(), lr=0.01) + + # ---------- attach DP (same behavior as before; only wraps the train loader) + if self.dp_config and not self._dp_attached: try: from opacus import PrivacyEngine - - self.privacy_engine = PrivacyEngine() - ( - self.model, - self.optimizer, - self.train_loader, - ) = self.privacy_engine.make_private( + privacy_engine = PrivacyEngine() + (self.model, self.optimizer, self.train_loader) = privacy_engine.make_private( module=self.model, optimizer=self.optimizer, data_loader=self.train_loader, - noise_multiplier=dp_config.noise_multiplier, - max_grad_norm=dp_config.max_grad_norm, - secure_rng=dp_config.secure_rng, + noise_multiplier=self.dp_config.noise_multiplier, + max_grad_norm=self.dp_config.max_grad_norm, + secure_rng=self.dp_config.secure_rng, ) + self._dp_attached = True except ImportError: print("Opacus non installé : exécution sans DP.") - # -------------------------------------------------------------------------- - # Helpers to (re)prepare data from a target column and test_size - # -------------------------------------------------------------------------- - def _prepare_splits(self, target_name, test_size, dp_config): - """Create train/test split, tensors/DMatrices, and metadata for the chosen target/test_size.""" - df = self.df - - if target_name not in df.columns: - raise ValueError(f"Target '{target_name}' not found in CSV columns: {list(df.columns)}") - - # Clamp and sanitize test_size - try: - ts = float(test_size) - except Exception: - ts = 0.20 - ts = max(1e-6, min(ts, 0.9)) - - # Build X/y from chosen target - X_df = df.drop(columns=[target_name]) - y_series = df[target_name] - X_full = X_df.values - - # If y isn't numeric, factorize to integers (keep class labels for metadata) - if not np.issubdtype(np.asarray(y_series).dtype, np.number): - y_vals, uniques = pd.factorize(y_series) - y_full = y_vals.astype(np.float32, copy=False) - classes = list(map(str, uniques)) - label_counts = y_series.value_counts().to_dict() + # ---------- record effective settings + self.effective_features = feat_cols + self.effective_target = target_col + self.effective_val_frac = float(val_frac) + # effective_test_frac already set above if ID mode; otherwise use the input + if self.test_ids and self.test_ids.strip(): + pass # Already set else: - y_full = y_series.values.astype(np.float32, copy=False) - classes = sorted(pd.Series(y_full).unique().tolist()) - label_counts = pd.Series(y_full).value_counts().to_dict() - - # Heuristic for stratification (classification-like) - is_classif = np.unique(y_full).shape[0] <= 50 - strat = y_full if is_classif else None - - X_train, X_test, y_train, y_test = train_test_split( - X_full, - y_full, - test_size=ts, - random_state=42, - stratify=strat if strat is not None else None, - ) + self.effective_test_frac = float(test_frac) - # --- Update metadata used by get_properties --- - self.feature_names = X_df.columns.tolist() - self.target_name = target_name - self.label_counts = label_counts - self.classes = classes - - # --- Build per-model buffers --- - if self.model_type == "nn": - # Train tensors - self.X_tensor = torch.tensor(X_train, dtype=torch.float32) - self.y_tensor = torch.tensor(y_train, dtype=torch.float32) - - # Test tensors - self.X_test_tensor = torch.tensor(X_test, dtype=torch.float32) - self.y_test_tensor = torch.tensor(y_test, dtype=torch.float32) - - # DataLoaders - batch_size = getattr(dp_config, "batch_size", 32) if dp_config else 32 - train_ds = TensorDataset(self.X_tensor, self.y_tensor) - self.train_loader = DataLoader(train_ds, batch_size=batch_size, shuffle=True) - self.test_loader = DataLoader( - TensorDataset(self.X_test_tensor, self.y_test_tensor), - batch_size=batch_size, - shuffle=False, - ) + self._initialized = True + print(f"[Client] Initialized with features={feat_cols}, target={target_col}, val={val_frac}, test={self.effective_test_frac}") - # Create model/criterion/optimizer if not present - input_dim = X_train.shape[1] - if not hasattr(self, "model"): - self.model = Net(input_dim) - self.criterion = nn.BCEWithLogitsLoss() - self.optimizer = optim.SGD(self.model.parameters(), lr=0.01) + # ---------- FL API (unchanged behavior) ---------- - else: - # XGBoost DMatrices - if xgb is None: - raise ImportError("xgboost is not installed. `pip install xgboost`") - - self.X_np = X_train.astype(np.float32, copy=False) # train - self.y_np = y_train.astype(np.float32, copy=False) - self.dtrain = xgb.DMatrix(self.X_np, label=self.y_np) - - self.X_np_test = X_test.astype(np.float32, copy=False) # test - self.y_np_test = y_test.astype(np.float32, copy=False) - self.dtest = xgb.DMatrix(self.X_np_test, label=self.y_np_test) - - # Cold-start booster only if not present yet - if not hasattr(self, "bst"): - self.bst = xgb.train(self.xgb_params, self.dtrain, num_boost_round=1) - - # Remember current prep so we can skip unnecessary rebuilds - self._prepared_key = (self.target_name, float(ts)) - - def _pick_target_and_frac(self, cfg): - """Pick ('target', 'testFrac') from a small dict; support alternative keys.""" - if not isinstance(cfg, dict): - return None, None - tgt = cfg.get("target") or cfg.get("Target") or cfg.get("label") - frac = cfg.get("testFrac", cfg.get("test_size", None)) - try: - frac = float(frac) if frac is not None else None - except Exception: - frac = None - return tgt, frac - - def _resolve_dataset_from_cfg(self, ds_cfg): - """ - Resolve (target, test_size) from datasetConfig: - - If isGlobal=True, take globalConfig.{target,testFrac} - - else take datasetConfig[hostname].{target,testFrac} - - fallbacks: keep current settings or defaults - """ - default_target = getattr(self, "target_name", self.df.columns[-1]) - default_frac = getattr(self, "_prepared_key", (None, 0.2))[1] if hasattr(self, "_prepared_key") else 0.2 - - if not isinstance(ds_cfg, dict): - return default_target, default_frac - - is_global = bool(ds_cfg.get("isGlobal")) - if is_global: - tgt, frac = self._pick_target_and_frac(ds_cfg.get("globalConfig", {})) - else: - host_cfg = ds_cfg.get(self.hostname) - if not isinstance(host_cfg, dict): - lower_map = {str(k).lower(): v for k, v in ds_cfg.items() if isinstance(v, dict)} - host_cfg = lower_map.get(self.hostname.lower()) - tgt, frac = self._pick_target_and_frac(host_cfg or {}) - - target = tgt if tgt else default_target - test_size = frac if frac is not None else default_frac - test_size = max(1e-6, min(float(test_size), 0.9)) - return target, test_size - - def _ensure_prepared_from_config(self, config, dp_config=None): - """Check config['datasetConfig']; rebuild splits if (target,test_size) changed.""" - ds_cfg = config.get("dataset_config") if isinstance(config, dict) else None - if not isinstance(ds_cfg, dict): - return - - target, ts = self._resolve_dataset_from_cfg(ds_cfg) - current = getattr(self, "_prepared_key", None) - desired = (target, float(ts)) - if current != desired: - # Do not re-apply DP dynamically here - self._prepare_splits(target_name=target, test_size=ts, dp_config=None) - - # -------------------------------------------------------------------------- - # Federated API - # -------------------------------------------------------------------------- def get_parameters(self, config): - if self.model_type == "nn": - return [val.cpu().numpy() for val in self.model.state_dict().values()] - else: - return booster_to_parameters(self.bst) + if not self._initialized: + try: + self._lazy_init_from_server_config(config if isinstance(config, dict) else {}) + except Exception as e: + if not self._initialized: + self._lazy_init_from_server_config({}) + return [val.cpu().numpy() for val in self.model.state_dict().values()] def set_parameters(self, parameters): - if self.model_type == "nn": - params_dict = zip(self.model.state_dict().keys(), parameters) - state_dict = {k: torch.tensor(v) for k, v in params_dict} - self.model.load_state_dict(state_dict, strict=True) - else: - if parameters and len(parameters) > 0: - self.bst = parameters_to_booster(parameters) + params_dict = zip(self.model.state_dict().keys(), parameters) + state_dict = {k: torch.tensor(v) for k, v in params_dict} + self.model.load_state_dict(state_dict, strict=True) def fit(self, parameters, config): - self.set_parameters(parameters) + if not self._initialized: + self._lazy_init_from_server_config(config) - # Allow server to override target/test_size dynamically - self._ensure_prepared_from_config(config, dp_config=None) - - if self.model_type == "nn": - self.model.train() - local_epochs = config.get("local_epochs", 5) - total_loss = 0.0 - for _ in range(local_epochs): - for X_batch, y_batch in self.train_loader: - self.optimizer.zero_grad() - outputs = self.model(X_batch) - loss = self.criterion(outputs.squeeze(), y_batch) - loss.backward() - self.optimizer.step() - total_loss += loss.item() * X_batch.size(0) - - avg_loss = total_loss / (len(self.train_loader.dataset) * max(local_epochs, 1)) - with torch.no_grad(): - logits = self.model(self.X_tensor).squeeze() # train set - probs = torch.sigmoid(logits).cpu().numpy() - y_true = self.y_tensor.cpu().numpy() - th = config.get("threshold", 0.5) - binary_preds = (probs >= th).astype(int) - acc = accuracy_score(y_true, binary_preds) + self.set_parameters(parameters) + self.model.train() + + local_epochs = config.get("local_epochs", 5) + total_loss = 0.0 + print(f"Training for {local_epochs} epochs...") + + for epoch in range(local_epochs): + print(f"Epoch {epoch + 1}/{local_epochs}") + for X_batch, y_batch in self.train_loader: + self.optimizer.zero_grad() + outputs = self.model(X_batch) + loss = self.criterion(outputs.squeeze(), y_batch) + loss.backward() + self.optimizer.step() + total_loss += loss.item() * X_batch.size(0) + + avg_loss = total_loss / (len(self.train_loader.dataset) * local_epochs) + + with torch.no_grad(): + logits = self.model(self.X_tensor).squeeze() + probs = torch.sigmoid(logits).cpu().numpy() + y_true = self.y_tensor.cpu().numpy() + binary_preds = (probs >= 0.5).astype(int) + try: auc = roc_auc_score(y_true, probs) + except Exception: + auc = float("nan") + acc = accuracy_score(y_true, binary_preds) - metrics = { - "train_loss": avg_loss, - "train_accuracy": acc, - "train_auc": auc, - } - return self.get_parameters(config), len(self.X_tensor), metrics - - else: - local_rounds = int(config.get("num_local_round", config.get("xgb_rounds", self.xgb_rounds))) - self.bst = xgb.train( - self.xgb_params, - self.dtrain, - num_boost_round=local_rounds, - xgb_model=self.bst, # continue from global - ) - preds = self.bst.predict(self.dtrain) - th = config.get("threshold", 0.5) - binary_preds = (preds >= th).astype(int) - acc = float((binary_preds == self.y_np).mean()) - auc = float(roc_auc_score(self.y_np, preds)) if len(np.unique(self.y_np)) > 1 else 0.0 + hostname = socket.gethostname() + os_type = platform.system() + metrics = { + "hostname": hostname, + "os_type": os_type, + "train_loss": avg_loss, + "train_accuracy": acc, + "train_auc": auc, + "features": ",".join(self.effective_features), + "target": self.effective_target, + "val_fraction": self.effective_val_frac, + "test_fraction": self.effective_test_frac, + } - metrics = {"train_accuracy": acc, "train_auc": auc} - return self.get_parameters(config), len(self.y_np), metrics + return self.get_parameters(config), len(self.train_loader.dataset), metrics def evaluate(self, parameters, config): - self.set_parameters(parameters) + if not self._initialized: + self._lazy_init_from_server_config(config) - # Keep eval consistent with any overridden target/test_size - self._ensure_prepared_from_config(config, dp_config=None) - - if self.model_type == "nn": - self.model.eval() - total_loss = 0.0 - all_probs, all_true = [], [] - with torch.no_grad(): - for X_batch, y_batch in self.test_loader: - outputs = self.model(X_batch) - loss = self.criterion(outputs.squeeze(), y_batch) - total_loss += loss.item() * X_batch.size(0) - probs = torch.sigmoid(outputs.squeeze()).cpu().numpy() - all_probs.extend(probs.tolist()) - all_true.extend(y_batch.cpu().numpy().tolist()) - - avg_loss = total_loss / len(self.test_loader.dataset) - th = config.get("threshold", 0.5) - binary_preds = [1 if p >= th else 0 for p in all_probs] - acc = accuracy_score(all_true, binary_preds) + self.set_parameters(parameters) + self.model.eval() + + total_loss = 0.0 + all_probs, all_true = [], [] + with torch.no_grad(): + for X_batch, y_batch in self.test_loader: + outputs = self.model(X_batch) + loss = self.criterion(outputs.squeeze(), y_batch) + total_loss += loss.item() * X_batch.size(0) + probs = torch.sigmoid(outputs.squeeze()).cpu().numpy() + all_probs.extend(probs.tolist()) + all_true.extend(y_batch.cpu().numpy().tolist()) + + avg_loss = total_loss / len(self.test_loader.dataset) if len(self.test_loader.dataset) > 0 else 0.0 + binary_preds = [1 if p >= 0.5 else 0 for p in all_probs] + try: auc = roc_auc_score(all_true, all_probs) - metrics = {"eval_loss": avg_loss, "eval_accuracy": acc, "eval_auc": auc} - return float(avg_loss), len(self.test_loader.dataset), metrics + except Exception: + auc = float("nan") + acc = accuracy_score(all_true, binary_preds) - else: - th = config.get("threshold", 0.5) - preds = self.bst.predict(self.dtest) - binary = (preds >= th).astype(int) - y_true = self.y_np_test - acc = float((binary == y_true).mean()) - auc = float(roc_auc_score(y_true, preds)) if len(np.unique(y_true)) > 1 else 0.0 - metrics = {"eval_accuracy": acc, "eval_auc": auc} - # loss optional for XGB; return 0.0 to satisfy Flower - return 0.0, len(y_true), metrics + metrics = { + "eval_loss": avg_loss, + "eval_accuracy": acc, + "eval_auc": auc, + } + print(f"Evaluation metrics: {metrics}") + + return float(avg_loss), len(self.test_loader.dataset), metrics def get_properties(self, config): hostname = socket.gethostname() os_type = platform.system() - if self.model_type == "nn": - num_samples = len(self.X_tensor) # train samples - num_features = self.X_tensor.shape[1] + if self._initialized: + num_samples = int(self.X_tensor.shape[0]) + num_features = int(self.X_tensor.shape[1]) + features_str = ",".join(self.effective_features) + target_name = self.effective_target + label_counts = pd.Series(self.y_tensor.numpy()).value_counts().to_dict() + classes = sorted(label_counts.keys()) else: - num_samples = len(self.y_np) # train samples - num_features = self.X_np.shape[1] + num_samples = len(self.X_tensor) + num_features = self.X_tensor.shape[1] + features_str = ",".join(self.feature_names) + target_name = self.target_name + label_counts = self.label_counts + classes = self.classes - features_str = ",".join(self.feature_names) - classes_str = ",".join(map(str, self.classes)) - dist_str = ",".join(f"{cls}:{cnt}" for cls, cnt in self.label_counts.items()) + classes_str = ",".join(map(str, classes)) + dist_str = ",".join(f"{cls}:{cnt}" for cls, cnt in label_counts.items()) cpu_physical = psutil.cpu_count(logical=False) cpu_logical = psutil.cpu_count(logical=True) @@ -419,7 +404,7 @@ def get_properties(self, config): "num_samples": num_samples, "num_features": num_features, "features": features_str, - "target": self.target_name, + "target": target_name, "classes": classes_str, "label_distribution": dist_str, "cpu_physical_cores": cpu_physical, @@ -427,61 +412,10 @@ def get_properties(self, config): "total_memory_gb": total_mem_gb, "gpu_driver_present": str(driver_present), "gpu_count": gpu_count, - "model_type": self.model_type, } - def start(self) -> None: - fl.client.start_numpy_client(server_address=self.server_address, client=self) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Flower client with NN/XGBoost + optional DP for NN") - parser.add_argument("--server_address", type=str, required=True, help="ex: 127.0.0.1:8080") - parser.add_argument("--data_path", type=str, default="data/data.csv", help="CSV path") - - # Mode - parser.add_argument("--model", type=str, default="nn", choices=["nn", "xgb"], help="Client model type") - - # DP (NN only) - parser.add_argument("--dp", action="store_true", help="Activer la confidentialité différentielle (NN uniquement)") - parser.add_argument("--noise_multiplier", type=float, default=1.0) - parser.add_argument("--max_grad_norm", type=float, default=1.0) - parser.add_argument("--batch_size", type=int, default=32) - - # XGBoost params - parser.add_argument("--xgb_eta", type=float, default=0.1) - parser.add_argument("--xgb_max_depth", type=int, default=6) - parser.add_argument("--xgb_subsample", type=float, default=0.8) - parser.add_argument("--xgb_colsample_bytree", type=float, default=0.8) - parser.add_argument("--xgb_rounds", type=int, default=50) - args = parser.parse_args() - - dp_config = None - if args.dp and args.model == "nn": - dp_config = DPConfig( - noise_multiplier=args.noise_multiplier, - max_grad_norm=args.max_grad_norm, - batch_size=args.batch_size, + def start(self): + fl.client.start_numpy_client( + server_address=self.server_address, + client=self, ) - - xgb_params = None - if args.model == "xgb": - xgb_params = { - "objective": "binary:logistic", - "eval_metric": "logloss", - "eta": args.xgb_eta, - "max_depth": args.xgb_max_depth, - "subsample": args.xgb_subsample, - "colsample_bytree": args.xgb_colsample_bytree, - "tree_method": "hist", - } - - client = FlowerClient( - server_address=args.server_address, - data_path=args.data_path, - dp_config=dp_config, - model_type=args.model, - xgb_params=xgb_params, - xgb_rounds=args.xgb_rounds if args.model == "xgb" else 0, - ) - client.start() diff --git a/MEDfl/rw/model.py b/MEDfl/rw/model.py index 2e37ae1..3c50a1f 100644 --- a/MEDfl/rw/model.py +++ b/MEDfl/rw/model.py @@ -1,11 +1,8 @@ import math -from typing import List, Optional, Literal, Callable, Tuple import torch import torch.nn as nn import torch.nn.functional as F -Task = Literal["binary", "multiclass", "multilabel", "regression"] - _ACTS = { "relu": nn.ReLU, "gelu": nn.GELU, @@ -16,7 +13,7 @@ "identity": nn.Identity, } -def _make_activation(name: str) -> nn.Module: +def _make_activation(name): if name not in _ACTS: raise ValueError(f"Unsupported activation '{name}'. Choose from {list(_ACTS)}") return _ACTS[name]() @@ -35,16 +32,16 @@ class Net(nn.Module): def __init__( self, - input_dim: int, - hidden_dims: List[int] = [64, 32], - activation: str = "relu", - batchnorm: bool = True, - dropout: Optional[float | List[float]] = 0.0, - task: Task = "binary", - num_classes: Optional[int] = None, - output_bias: bool = True, - return_logits: bool = True, - weight_init: Literal["kaiming", "xavier", "none"] = "kaiming", + input_dim, + hidden_dims=[64, 32], + activation="relu", + batchnorm=True, + dropout=0.0, + task="binary", + num_classes=None, + output_bias=True, + return_logits=True, + weight_init="kaiming", ): super().__init__() self.task = task @@ -78,10 +75,9 @@ def __init__( else: raise ValueError("dropout must be float|list[float]|None") - layers = [] - in_dim = input_dim self.blocks = nn.ModuleList() - for i, (h, p) in enumerate(zip(hidden_dims, dropout)): + in_dim = input_dim + for h, p in zip(hidden_dims, dropout): block = nn.ModuleDict({ "lin": nn.Linear(in_dim, h, bias=True), "bn": nn.BatchNorm1d(h) if batchnorm else nn.Identity(), @@ -98,11 +94,15 @@ def __init__( self.apply(lambda m: self._init_weights(m, scheme=weight_init, activation=activation)) @staticmethod - def _init_weights(m: nn.Module, scheme: str, activation: str): + def _init_weights(m, scheme, activation): if isinstance(m, nn.Linear): if scheme == "kaiming": nonlinearity = "leaky_relu" if activation == "leaky_relu" else "relu" - nn.init.kaiming_uniform_(m.weight, a=math.sqrt(5) if activation == "leaky_relu" else 0, nonlinearity=nonlinearity) + nn.init.kaiming_uniform_( + m.weight, + a=math.sqrt(5) if activation == "leaky_relu" else 0, + nonlinearity=nonlinearity, + ) elif scheme == "xavier": nn.init.xavier_uniform_(m.weight) if m.bias is not None: @@ -110,7 +110,7 @@ def _init_weights(m: nn.Module, scheme: str, activation: str): bound = 1 / math.sqrt(fan_in) if fan_in > 0 else 0 nn.init.uniform_(m.bias, -bound, bound) - def forward(self, x: torch.Tensor) -> torch.Tensor: + def forward(self, x): for blk in self.blocks: x = blk["lin"](x) x = blk["bn"](x) @@ -120,7 +120,7 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: return logits if self.return_logits else self._apply_output_activation(logits) # Inference helpers - def _apply_output_activation(self, logits: torch.Tensor) -> torch.Tensor: + def _apply_output_activation(self, logits): if self.task == "binary": return torch.sigmoid(logits) # (B, 1) elif self.task == "multiclass": @@ -128,15 +128,15 @@ def _apply_output_activation(self, logits: torch.Tensor) -> torch.Tensor: elif self.task == "multilabel": return torch.sigmoid(logits) # (B, L) elif self.task == "regression": - return logits # raw regression output + return logits # raw regression output else: raise RuntimeError("Invalid task") @torch.no_grad() - def predict(self, x: torch.Tensor) -> torch.Tensor: - """Apply appropriate post-processing for predictions.""" - logits = self.forward(x) if self.return_logits else x - probs = self._apply_output_activation(logits) if self.return_logits else logits + def predict(self, x): + out = self.forward(x) + probs = self._apply_output_activation(out) if self.return_logits else out + if self.task == "binary": return (probs >= 0.5).long() elif self.task == "multiclass": diff --git a/MEDfl/rw/server.py b/MEDfl/rw/server.py index dc1cd4d..178658a 100644 --- a/MEDfl/rw/server.py +++ b/MEDfl/rw/server.py @@ -1,7 +1,6 @@ import flwr as fl from flwr.server.strategy import FedAvg from flwr.server.server import ServerConfig -from typing import Optional, Any from MEDfl.rw.strategy import Strategy import asyncio from flwr.server.client_manager import ClientManager @@ -29,11 +28,11 @@ class FederatedServer: def __init__( self, - host: str = "0.0.0.0", - port: int = 8080, - num_rounds: int = 3, - strategy: Optional[Strategy] = None, - certificates: Optional[Any] = None, + host="0.0.0.0", + port=8080, + num_rounds=3, + strategy=None, + certificates=None, ): """ Initialize the FederatedServer. @@ -60,7 +59,7 @@ def __init__( self.connected_clients = [] # Track connected client IDs - def start(self) -> None: + def start(self): """ Start the Flower server with the configured strategy and track client connections. """ @@ -89,7 +88,7 @@ class TrackingClientManager(fl.server.client_manager.SimpleClientManager): client_properties (dict): Placeholder for storing client-specific properties. """ - def __init__(self, server: FederatedServer): + def __init__(self, server): """ Initialize the TrackingClientManager. @@ -100,7 +99,7 @@ def __init__(self, server: FederatedServer): self.server = server self.client_properties = {} - def register(self, client: ClientProxy) -> bool: + def register(self, client): """ Register a client and log its connection. @@ -116,7 +115,7 @@ def register(self, client: ClientProxy) -> bool: asyncio.run(self._fetch_and_log_hostname(client)) return success - async def _fetch_and_log_hostname(self, client: ClientProxy): + async def _fetch_and_log_hostname(self, client): """ Asynchronously fetch and log the client's hostname or CID. diff --git a/MEDfl/rw/strategy.py b/MEDfl/rw/strategy.py index fc3d02b..ba1ce42 100644 --- a/MEDfl/rw/strategy.py +++ b/MEDfl/rw/strategy.py @@ -1,117 +1,98 @@ -# MEDfl/rw/strategy.py +# File: MEDfl/rw/strategy.py import os -import json import numpy as np import flwr as fl -from typing import Callable, Optional, Dict, Any, List, Tuple from flwr.common import GetPropertiesIns from flwr.server.client_manager import ClientManager from flwr.server.client_proxy import ClientProxy import time -from flwr.common import parameters_to_ndarrays, ndarrays_to_parameters - - -# ===== unchanged aggregate_* for metrics (works for both) ===== -def aggregate_fit_metrics(results: List[Tuple[int, Dict[str, float]]]) -> Dict[str, float]: - total = max(sum(n for n, _ in results), 1) +from MEDfl.rw.model import Net +import torch + +# =================================================== +# Custom metric aggregation functions +# =================================================== +def aggregate_fit_metrics(results): + total = sum(n for n, _ in results) loss = sum(m.get("train_loss", 0.0) * n for n, m in results) / total - acc = sum(m.get("train_accuracy", 0.0) * n for n, m in results) / total - auc = sum(m.get("train_auc", 0.0) * n for n, m in results) / total + acc = sum(m.get("train_accuracy", 0.0) * n for n, m in results) / total + auc = sum(m.get("train_auc", 0.0) * n for n, m in results) / total return {"train_loss": loss, "train_accuracy": acc, "train_auc": auc} -def aggregate_eval_metrics(results: List[Tuple[int, Dict[str, float]]]) -> Dict[str, float]: - total = max(sum(n for n, _ in results), 1) +def aggregate_eval_metrics(results): + total = sum(n for n, _ in results) loss = sum(m.get("eval_loss", 0.0) * n for n, m in results) / total - acc = sum(m.get("eval_accuracy", 0.0) * n for n, m in results) / total - auc = sum(m.get("eval_auc", 0.0) * n for n, m in results) / total + acc = sum(m.get("eval_accuracy", 0.0) * n for n, m in results) / total + auc = sum(m.get("eval_auc", 0.0) * n for n, m in results) / total return {"eval_loss": loss, "eval_accuracy": acc, "eval_auc": auc} -# ========== NEW: helper to decode XGB booster parameters ========== -# --- helpers for XGB bytes <-> Booster (updated to JSON format) --- -def _booster_to_json_bytes(bst) -> bytes: - """Return XGBoost Booster as JSON bytes (so we can edit trees).""" - # xgboost>=1.7 supports raw_format='json' - raw = bst.save_raw(raw_format='json') - return bytes(raw) - -def _ensure_json_bytes(raw_bytes: bytes) -> bytes: - """If bytes are not JSON (binary model), try converting via Booster load+save.""" - try: - # Quick sniff: JSON starts with '{' or '[' - b0 = raw_bytes.lstrip()[:1] - if b0 in (b'{', b'['): - return raw_bytes - except Exception: - pass - # Convert binary -> JSON - import xgboost as xgb - bst = xgb.Booster() - bst.load_model(bytearray(raw_bytes)) - return _booster_to_json_bytes(bst) - -def _get_tree_nums(xgb_model_org: bytes) -> Tuple[int, int]: - xgb_model = json.loads(bytearray(xgb_model_org)) - tree_num = int(xgb_model["learner"]["gradient_booster"]["model"]["gbtree_model_param"]["num_trees"]) - paral_tree_num = int(xgb_model["learner"]["gradient_booster"]["model"]["gbtree_model_param"]["num_parallel_tree"]) - return tree_num, paral_tree_num - -def _aggregate_trees(bst_prev_org: Optional[bytes], bst_curr_org: bytes) -> bytes: - """Conduct bagging aggregation by appending trees from current to previous.""" - bst_curr_org = _ensure_json_bytes(bst_curr_org) - - if not bst_prev_org: - # First model in the round becomes the base - return bst_curr_org - - bst_prev_org = _ensure_json_bytes(bst_prev_org) - - tree_num_prev, _ = _get_tree_nums(bst_prev_org) - _, paral_tree_num_curr = _get_tree_nums(bst_curr_org) - - bst_prev = json.loads(bytearray(bst_prev_org)) - bst_curr = json.loads(bytearray(bst_curr_org)) - - # Update counts - bst_prev["learner"]["gradient_booster"]["model"]["gbtree_model_param"]["num_trees"] = str( - tree_num_prev + paral_tree_num_curr - ) - - # Update iteration_indptr - iteration_indptr = bst_prev["learner"]["gradient_booster"]["model"]["iteration_indptr"] - iteration_indptr.append(iteration_indptr[-1] + paral_tree_num_curr) - - # Append current trees, re-id them - trees_curr = bst_curr["learner"]["gradient_booster"]["model"]["trees"] - for t in range(paral_tree_num_curr): - trees_curr[t]["id"] = tree_num_prev + t - bst_prev["learner"]["gradient_booster"]["model"]["trees"].append(trees_curr[t]) - bst_prev["learner"]["gradient_booster"]["model"]["tree_info"].append(0) - - return bytes(json.dumps(bst_prev), "utf-8") - +# =================================================== +# Strategy Wrapper +# =================================================== class Strategy: + """ + Flower Strategy wrapper: + - Dynamic hyperparameters via on_fit_config_fn + - Custom metric aggregation + - Per-client & aggregated metric logging + - Synchronous get_properties() inspection in configure_fit() + - Saving global parameters every saveOnRounds to savingPath + + Extended: + - split_mode: + * "global": use global val_fraction/test_fraction for all clients + * "per_client": use client_fractions[hostname] if present + - client_fractions: + { + "HOSTNAME_1": { + "val_fraction": float (optional), + "test_fraction": float (optional), + "test_ids": [..] or "id1,id2" (optional) + }, + ... + } + - In per_client mode: + * if test_ids is present for a client: + -> send test_ids + -> do NOT use that client's test_fraction + * otherwise: + -> use that client's val_fraction/test_fraction if provided, + else fall back to global val_fraction/test_fraction + - client id in this mapping = hostname from client.get_properties() + - id_col: + * column name used on clients to match test_ids (default "id") + """ + def __init__( self, - name: str = "FedAvg", - fraction_fit: float = 1.0, - fraction_evaluate: float = 1.0, - min_fit_clients: int = 2, - min_evaluate_clients: int = 2, - min_available_clients: int = 2, - initial_parameters: Optional[List[Any]] = None, - evaluate_fn: Optional[Callable] = None, - fit_metrics_aggregation_fn: Optional[Callable] = None, - evaluate_metrics_aggregation_fn: Optional[Callable] = None, - local_epochs: int = 1, - threshold: float = 0.5, - learning_rate: float = 0.01, - optimizer_name: str = "SGD", - savingPath: str = "", - saveOnRounds: int = 3, - total_rounds: int = 3, - datasetConfig: Dict[str, Any] = {}, - ) -> None: + name="FedAvg", + fraction_fit=1.0, + fraction_evaluate=1.0, + min_fit_clients=2, + min_evaluate_clients=2, + min_available_clients=2, + initial_parameters=None, + evaluate_fn=None, + fit_metrics_aggregation_fn=None, + evaluate_metrics_aggregation_fn=None, + local_epochs=1, + threshold=0.5, + learning_rate=0.01, + optimizer_name="SGD", + savingPath="", + saveOnRounds=3, + total_rounds=3, + features="", + target="", + val_fraction=0.10, + test_fraction=0.10, + # NEW: splitting control (added at the end to not break existing calls) + split_mode="global", # "global" or "per_client" + client_fractions=None, + # NEW: id column for test_ids mapping + id_col="id", + ): self.name = name self.fraction_fit = fraction_fit self.fraction_evaluate = fraction_evaluate @@ -124,6 +105,7 @@ def __init__( self.fit_metrics_aggregation_fn = fit_metrics_aggregation_fn or aggregate_fit_metrics self.evaluate_metrics_aggregation_fn = evaluate_metrics_aggregation_fn or aggregate_eval_metrics + # Dynamic hyperparams self.local_epochs = local_epochs self.threshold = threshold self.learning_rate = learning_rate @@ -131,299 +113,190 @@ def __init__( self.savingPath = savingPath self.saveOnRounds = saveOnRounds self.total_rounds = total_rounds - self.datasetConfig = datasetConfig + self._features = features # comma-separated or "" + self._target = target # or "" + self._val_fraction = val_fraction + self._test_fraction = test_fraction - self.strategy_object: Optional[fl.server.strategy.Strategy] = None + # NEW + self.split_mode = split_mode + self.client_fractions = client_fractions or {} + self.id_col = id_col - def create_strategy(self) -> None: - # ======== Branch: custom XGB strategy ======== - if self.name == "XGBoostBagging": - self.strategy_object = self._create_xgb_bagging_strategy() - return + self.strategy_object = None - # ======== Default: use Flower built-in by name (e.g., FedAvg) ======== + def create_strategy(self): + # 1) Pick the Flower Strategy class StrategyClass = getattr(fl.server.strategy, self.name) - # ======== Common params for all built-in strategies ======== - def fit_config_fn(server_round: int) -> Dict[str, Any]: - return {"local_epochs": self.local_epochs, "threshold": self.threshold, "learning_rate": self.learning_rate, "optimizer": self.optimizer_name , "dataset_config": self.datasetConfig} - - params: Dict[str, Any] = { - "fraction_fit": self.fraction_fit, - "fraction_evaluate": self.fraction_evaluate, - "min_fit_clients": self.min_fit_clients, - "min_evaluate_clients": self.min_evaluate_clients, - "min_available_clients": self.min_available_clients, - "evaluate_fn": self.evaluate_fn, - "on_fit_config_fn": fit_config_fn, - "fit_metrics_aggregation_fn": self.fit_metrics_aggregation_fn, - "evaluate_metrics_aggregation_fn": self.evaluate_metrics_aggregation_fn, + # 2) Define on_fit_config_fn _before_ instantiation (global defaults) + def fit_config_fn(server_round): + return { + "local_epochs": self.local_epochs, + "threshold": self.threshold, + "learning_rate": self.learning_rate, + "optimizer": self.optimizer_name, + "features": self._features, + "target": self._target, + "val_fraction": float(self._val_fraction), + "test_fraction": float(self._test_fraction), + # NEW: always send id_col so clients know which column to use for test_ids + "id_col": self.id_col, + } + + # 3) Build params including on_fit_config_fn + params = { + "fraction_fit": self.fraction_fit, + "fraction_evaluate": self.fraction_evaluate, + "min_fit_clients": self.min_fit_clients, + "min_evaluate_clients": self.min_evaluate_clients, + "min_available_clients": self.min_available_clients, + "evaluate_fn": self.evaluate_fn, + "on_fit_config_fn": fit_config_fn, + "fit_metrics_aggregation_fn": self.fit_metrics_aggregation_fn, + "evaluate_metrics_aggregation_fn": self.evaluate_metrics_aggregation_fn, } if self.initial_parameters: params["initial_parameters"] = fl.common.ndarrays_to_parameters(self.initial_parameters) + else: + # derive initial params from server-specified features + feat_cols = [c.strip() for c in (self._features or "").split(",") if c.strip()] + if not feat_cols: + raise ValueError( + "No initial_parameters provided and 'features' is empty. " + "Provide Strategy(..., features='col1,col2,...') or pass initial_parameters." + ) + input_dim = len(feat_cols) + _model = Net(input_dim) + _arrays = [t.detach().cpu().numpy() for t in _model.state_dict().values()] + params["initial_parameters"] = fl.common.ndarrays_to_parameters(_arrays) + # 4) Instantiate the real Flower strategy strat = StrategyClass(**params) - # Wrap aggregate_fit for logging + optional saving + # 5) Wrap aggregate_fit for logging (prints unchanged) original_agg_fit = strat.aggregate_fit def logged_agg_fit(server_round, results, failures): print(f"\n[Server] 🔄 Round {server_round} - Client Training Metrics:") - for (client_id, fit_res) in results: + for i, (client_id, fit_res) in enumerate(results): print(f" CTM Round {server_round} Client:{client_id.cid}: {fit_res.metrics}") - agg_params, metrics = original_agg_fit(server_round, results, failures) print(f"[Server] ✅ Round {server_round} - Aggregated Training Metrics: {metrics}\n") - - # ⬇️ Only try to save when we actually have parameters - should_checkpoint = ( - self.savingPath - and ((server_round % self.saveOnRounds == 0) or (self.total_rounds and server_round == self.total_rounds)) - ) - - if should_checkpoint and agg_params is not None: - try: - arrays = fl.common.parameters_to_ndarrays(agg_params) - filename = ( - f"round_{server_round}_final_model.npz" - if (self.total_rounds and server_round == self.total_rounds) - else f"round_{server_round}_model.npz" - ) - os.makedirs(self.savingPath, exist_ok=True) - np.savez(os.path.join(self.savingPath, filename), *arrays) - print(f"[Server] 💾 Saved checkpoint to {os.path.join(self.savingPath, filename)}") - except Exception as e: - print(f"[Server] ⚠️ Skipped saving checkpoint (no parameters or conversion failed): {e}") - elif should_checkpoint and agg_params is None: - print("[Server] ⚠️ Skipped checkpoint: aggregate_fit returned None (no aggregated parameters this round).") - + # save the model parameters if savingPath is set on each saveOnRounds + if self.savingPath and ( + (server_round % self.saveOnRounds == 0) + or (self.total_rounds and server_round == self.total_rounds) + ): + arrays = fl.common.parameters_to_ndarrays(agg_params) + # Determine filename: final_model on last round else round_{n} + filename = ( + f"round_{server_round}_final_model.npz" + if server_round == self.total_rounds + else f"round_{server_round}_model.npz" + ) + filepath = os.path.join(self.savingPath, filename) + np.savez(filepath, *arrays) return agg_params, metrics strat.aggregate_fit = logged_agg_fit - + # 6) Wrap aggregate_evaluate for logging (prints unchanged) original_agg_eval = strat.aggregate_evaluate + def logged_agg_eval(server_round, results, failures): print(f"\n[Server] 📊 Round {server_round} - Client Evaluation Metrics:") - for (client_id, eval_res) in results: + for i, (client_id, eval_res) in enumerate(results): print(f" CEM Round {server_round} Client:{client_id.cid}: {eval_res.metrics}") loss, metrics = original_agg_eval(server_round, results, failures) - print(f"[Server] ✅ Round {server_round} - Aggregated Evaluation Metrics:\n Loss: {loss}, Metrics: {metrics}\n") + print(f"[Server] ✅ Round {server_round} - Aggregated Evaluation Metrics:") + print(f" Loss: {loss}, Metrics: {metrics}\n") return loss, metrics + strat.aggregate_evaluate = logged_agg_eval + # 7) Wrap configure_fit to: + # - log client properties (unchanged) + # - apply split_mode/client_fractions to fit_ins.config (NEW) original_conf_fit = strat.configure_fit - def wrapped_conf_fit(server_round: int, parameters, client_manager: ClientManager): - selected = original_conf_fit(server_round=server_round, parameters=parameters, client_manager=client_manager) - ins = GetPropertiesIns(config={}) - for client, _ in selected: - try: - props = client.get_properties(ins=ins, timeout=10.0, group_id=0) - print(f"\n📋 [Round {server_round}] Client {client.cid} Properties: {props.properties}") - except Exception as e: - print(f"⚠️ Failed to get properties from {client.cid}: {e}") - return selected - strat.configure_fit = wrapped_conf_fit - self.strategy_object = strat + def wrapped_conf_fit( + server_round, + parameters, + client_manager + ): + selected = original_conf_fit( + server_round=server_round, + parameters=parameters, + client_manager=client_manager + ) - # ---------- NEW: Custom XGBoost strategy ---------- - def _create_xgb_bagging_strategy_old(self) -> fl.server.strategy.Strategy: - from flwr.common import FitIns, Parameters, ndarrays_to_parameters - from flwr.server.client_manager import ClientManager - - class XGBoostBagging(fl.server.strategy.Strategy): - def __init__(self, outer: "Strategy"): - self.outer = outer - self.global_parameters: Parameters | None = None - - def initialize_parameters(self, client_manager: ClientManager): - return self.global_parameters - - def configure_fit(self, server_round, parameters, client_manager: ClientManager): - # (unchanged) - sample_n = max(self.outer.min_fit_clients, 1) - clients = client_manager.sample(num_clients=sample_n, min_num_clients=self.outer.min_fit_clients) - fit_ins = FitIns(parameters if parameters is not None else self.global_parameters, - {"xgb_rounds": self.outer.local_epochs if self.outer.local_epochs > 0 else 50}) - return [(client, fit_ins) for client in clients] - - def aggregate_fit(self, server_round, results, failures): - # (unchanged: select-best) - best = None - for (client, fit_res) in results: - m = fit_res.metrics or {} - score = (m.get("train_auc", 0.0), m.get("train_accuracy", 0.0)) - if (best is None) or (score > best["score"]): - best = {"score": score, "parameters": fit_res.parameters} - if best is not None: - self.global_parameters = best["parameters"] - - metrics = self.outer.fit_metrics_aggregation_fn([(r.num_examples, r.metrics) for (_, r) in results]) - print(f"[Server-XGB] ✅ Round {server_round} - Selected best booster (AUC,ACC)={best['score'] if best else None}") - - # Optional saving (unchanged) - if self.outer.savingPath and ((server_round % self.outer.saveOnRounds == 0) or - (self.outer.total_rounds and server_round == self.outer.total_rounds)): - os.makedirs(self.outer.savingPath, exist_ok=True) - if self.global_parameters is not None: - raw = bytes(self.global_parameters.tensors[0]) if hasattr(self.global_parameters, "tensors") \ - else bytes(self.global_parameters[0].tolist()) - with open(os.path.join(self.outer.savingPath, f"round_{server_round}_xgb.model"), "wb") as f: - f.write(raw) - - return self.global_parameters, metrics - - def configure_evaluate(self, server_round, parameters, client_manager: ClientManager): - # No centralized eval: return empty list - return [] - - def aggregate_evaluate(self, server_round, results, failures): - if not results: - return 0.0, {} - loss = 0.0 - metrics = self.outer.evaluate_metrics_aggregation_fn([(r.num_examples, r.metrics) for (_, r) in results]) - return loss, metrics - - # 🔧 ADD THIS METHOD to satisfy the abstract interface - def evaluate(self, server_round, parameters): - # No server-side evaluation; Flower expects Optional[Tuple[float, dict]] - return None - - strat = XGBoostBagging(self) - - # Log client props, like the NN path - original_conf_fit = strat.configure_fit - def wrapped_conf_fit(server_round, parameters, client_manager): - selected = original_conf_fit(server_round, parameters, client_manager) ins = GetPropertiesIns(config={}) - for client, _ in selected: + + for client, fit_ins in selected: + hostname = None try: props = client.get_properties(ins=ins, timeout=10.0, group_id=0) print(f"\n📋 [Round {server_round}] Client {client.cid} Properties: {props.properties}") + hostname = props.properties.get("hostname", None) except Exception as e: print(f"⚠️ Failed to get properties from {client.cid}: {e}") - return selected - strat.configure_fit = wrapped_conf_fit - - return strat - - def _create_xgb_bagging_strategy(self) -> fl.server.strategy.Strategy: - from flwr.common import FitIns, Parameters, ndarrays_to_parameters - from flwr.common import Scalar - from typing import Union, cast - - class XGBoostBagging(fl.server.strategy.Strategy): - def __init__(self, outer: "Strategy"): - self.outer = outer - self.global_model_bytes: Optional[bytes] = None # JSON bytes - - def initialize_parameters(self, client_manager: ClientManager): - if self.global_model_bytes is None: - return None - # wrap the JSON bytes into a uint8 numpy array for NumPyClient - arr = np.frombuffer(self.global_model_bytes, dtype=np.uint8) - return ndarrays_to_parameters([arr]) - - - def configure_fit(self, server_round: int, parameters, client_manager: ClientManager): - # Sample exactly min_fit_clients (or at least 1) - sample_n = max(self.outer.min_fit_clients, 1) - clients = client_manager.sample( - num_clients=sample_n, min_num_clients=self.outer.min_fit_clients - ) - - # Tell clients how many trees to add and return - cfg = { - "num_local_round": int(self.outer.local_epochs) if self.outer.local_epochs > 0 else 50, - "global_round": int(server_round), - } - fit_ins = FitIns( - parameters if parameters is not None else self.initialize_parameters(client_manager), - cfg, - ) - return [(client, fit_ins) for client in clients] - - def aggregate_fit( - self, - server_round: int, - results: List[Tuple[ClientProxy, "flwr.common.FitRes"]], - failures: List[Union[Tuple[ClientProxy, "flwr.common.FitRes"], BaseException]], - ): - # Accept failures policy like FedAvg (optional) - if not results: - return None, {} - if not getattr(self, "accept_failures", True) and failures: - return None, {} - - # Start from current global; append every client's newly trained trees - global_bytes = self.global_model_bytes - for _, fit_res in results: - arrays = parameters_to_ndarrays(fit_res.parameters) # list of np.ndarrays - for arr in arrays: - raw = arr.tobytes() # recover the exact buffer we sent - raw_json = _ensure_json_bytes(raw) # accept binary/JSON; normalize to JSON - # (Optional but recommended) slice only the last K trees trained locally: - # k = int(self.outer.local_epochs) if self.outer.local_epochs > 0 else 50 - # raw_json = _slice_last_k_trees(raw_json, k) - global_bytes = _aggregate_trees(global_bytes, raw_json) - - - self.global_model_bytes = global_bytes - - # Optional metric aggregation for logging - metrics = self.outer.fit_metrics_aggregation_fn( - [(r.num_examples, r.metrics) for (_, r) in results] - ) - - # Optional checkpointing - if self.outer.savingPath and ( - (server_round % self.outer.saveOnRounds == 0) - or (self.outer.total_rounds and server_round == self.outer.total_rounds) - ): - os.makedirs(self.outer.savingPath, exist_ok=True) - if self.global_model_bytes is not None: - with open(os.path.join(self.outer.savingPath, f"round_{server_round}_xgb.model"), "wb") as f: - f.write(self.global_model_bytes) + # Fallback: if no hostname returned, use Flower cid + if not hostname: + hostname = client.cid - arr = np.frombuffer(self.global_model_bytes, dtype=np.uint8) - return ndarrays_to_parameters([arr]), metrics + # Keep same object + cfg = fit_ins.config + if self.split_mode == "per_client": + # Lookup by hostname (preferred) or cid + per_cfg = ( + self.client_fractions.get(hostname) + or self.client_fractions.get(client.cid) + or {} + ) - def configure_evaluate(self, server_round, parameters, client_manager: ClientManager): - # You can keep distributed evaluation if your clients implement it; - # otherwise return [] to disable. - return [] - - def aggregate_evaluate(self, server_round, results, failures): - if not results: - return 0.0, {} - loss = 0.0 - metrics = self.outer.evaluate_metrics_aggregation_fn( - [(r.num_examples, r.metrics) for (_, r) in results] - ) - return loss, metrics - - def evaluate(self, server_round, parameters): - # No server-side eval by default - return None - - strat = XGBoostBagging(self) + # val_fraction: per-client override if present + if "val_fraction" in per_cfg: + try: + cfg["val_fraction"] = float(per_cfg["val_fraction"]) + except Exception: + pass # keep existing if invalid + + # test: prefer test_ids if provided + if "test_ids" in per_cfg and per_cfg["test_ids"]: + test_ids_val = per_cfg["test_ids"] + if isinstance(test_ids_val, (list, tuple, set)): + test_ids_str = ",".join(str(x) for x in test_ids_val) + else: + test_ids_str = str(test_ids_val) + cfg["test_ids"] = test_ids_str + # when using explicit IDs, do not force a test_fraction for this client + if "test_fraction" in cfg: + del cfg["test_fraction"] + # ensure id_col is sent so client can map IDs + cfg["id_col"] = self.id_col + else: + # no test_ids -> use per-client test_fraction if present + if "test_fraction" in per_cfg: + try: + cfg["test_fraction"] = float(per_cfg["test_fraction"]) + except Exception: + pass # keep existing if invalid + # if no test_ids: id_col not strictly required, leave as-is + else: + # split_mode == "global": enforce global fractions, clear any test_ids + if "test_ids" in cfg: + del cfg["test_ids"] + cfg["val_fraction"] = float(self._val_fraction) + cfg["test_fraction"] = float(self._test_fraction) + # also send id_col so clients know column name if needed + cfg["id_col"] = self.id_col - # (Optional) property logging identical to your previous wrapper - original_conf_fit = strat.configure_fit - def wrapped_conf_fit(server_round, parameters, client_manager): - selected = original_conf_fit(server_round, parameters, client_manager) - ins = GetPropertiesIns(config={}) - for client, _ in selected: - try: - props = client.get_properties(ins=ins, timeout=10.0, group_id=0) - print(f"\n📋 [Round {server_round}] Client {client.cid} Properties: {props.properties}") - except Exception as e: - print(f"⚠️ Failed to get properties from {client.cid}: {e}") return selected - strat.configure_fit = wrapped_conf_fit - return strat + strat.configure_fit = wrapped_conf_fit + # 8) Save the ready-to-use strategy + self.strategy_object = strat diff --git a/build/lib/MEDfl/LearningManager/__init__.py b/build/lib/MEDfl/LearningManager/__init__.py new file mode 100644 index 0000000..88a6314 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/__init__.py @@ -0,0 +1,13 @@ +# MEDfl/LearningManager/__init__.py + +# Import modules from this package +# from .client import * +# from .dynamicModal import * +# from .flpipeline import * +# from .federated_dataset import * +# from .model import * +# from .params_optimiser import * +# from .plot import * +# from .server import * +# from .strategy import * +# from .utils import * diff --git a/build/lib/MEDfl/LearningManager/client.py b/build/lib/MEDfl/LearningManager/client.py new file mode 100644 index 0000000..4a18ea8 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/client.py @@ -0,0 +1,150 @@ +#!/usr/bin/env python3 +import flwr as fl +from opacus import PrivacyEngine +from torch.utils.data import DataLoader + +from .model import Model +from .utils import params +import torch + +class FlowerClient(fl.client.NumPyClient): + """ + FlowerClient class for creating MEDfl clients. + + Attributes: + cid (str): Client ID. + local_model (Model): Local model of the federated learning network. + trainloader (DataLoader): DataLoader for training data. + valloader (DataLoader): DataLoader for validation data. + diff_priv (bool): Flag indicating whether to use differential privacy. + """ + def __init__(self, cid: str, local_model: Model, trainloader: DataLoader, valloader: DataLoader, diff_priv: bool = params["diff_privacy"]): + """ + Initializes the FlowerClient instance. + + Args: + cid (str): Client ID. + local_model (Model): Local model of the federated learning network. + trainloader (DataLoader): DataLoader for training data. + valloader (DataLoader): DataLoader for validation data. + diff_priv (bool): Flag indicating whether to use differential privacy. + """ + self.cid = cid + self.local_model = local_model + self.trainloader = trainloader + self.valloader = valloader + if torch.cuda.is_available(): + num_cuda_devices = torch.cuda.device_count() + if num_cuda_devices > 0: + device_idx = int(self.cid) % num_cuda_devices + self.device = torch.device(f"cuda:{device_idx}") + self.local_model.model.to(self.device) + else: + # Handle case where CUDA is available but no CUDA devices are found + raise RuntimeError("CUDA is available, but no CUDA devices are found.") + else: + # Handle case where CUDA is not available + self.device = torch.device("cpu") + self.local_model.model.to(self.device) + + self.privacy_engine = PrivacyEngine(secure_mode=False) + self.diff_priv = diff_priv + self.epsilons = [] + self.accuracies = [] + self.losses = [] + if self.diff_priv: + model, optimizer, self.trainloader = self.privacy_engine.make_private_with_epsilon( + module=self.local_model.model.train(), + optimizer=self.local_model.optimizer, + data_loader=self.trainloader, + epochs=params["train_epochs"], + target_epsilon=float(params["EPSILON"]), + target_delta= float(params["DELTA"]), + max_grad_norm=params["MAX_GRAD_NORM"], + ) + setattr(self.local_model, "model", model) + setattr(self.local_model, "optimizer", optimizer) + self.validate() + + def validate(self): + """Validates cid, local_model, trainloader, valloader.""" + if not isinstance(self.cid, str): + raise TypeError("cid argument must be a string") + + if not isinstance(self.local_model, Model): + raise TypeError("local_model argument must be a MEDfl.LearningManager.model.Model") + + if not isinstance(self.trainloader, DataLoader): + raise TypeError("trainloader argument must be a torch.utils.data.dataloader") + + if not isinstance(self.valloader, DataLoader): + raise TypeError("valloader argument must be a torch.utils.data.dataloader") + + if not isinstance(self.diff_priv, bool): + raise TypeError("diff_priv argument must be a bool") + + def get_parameters(self, config): + """ + Returns the current parameters of the local model. + + Args: + config: Configuration information. + + Returns: + Numpy array: Parameters of the local model. + """ + print(f"[Client {self.cid}] get_parameters") + return self.local_model.get_parameters() + + def fit(self, parameters, config): + """ + Fits the local model to the received parameters using federated learning. + + Args: + parameters: Parameters received from the server. + config: Configuration information. + + Returns: + Tuple: Parameters of the local model, number of training examples, and privacy information. + """ + print('\n -------------------------------- \n this is the config of the client') + print(f"[Client {self.cid}] fit, config: {config}") + # print(config['epochs']) + print('\n -------------------------------- \n ') + self.local_model.set_parameters(parameters) + for _ in range(params["train_epochs"]): + epsilon = self.local_model.train( + self.trainloader, + epoch=_, + device=self.device, + privacy_engine=self.privacy_engine, + diff_priv=self.diff_priv, + ) + self.epsilons.append(epsilon) + print(f"epsilon of client {self.cid} : eps = {epsilon}") + return ( + self.local_model.get_parameters(), + len(self.trainloader), + {"epsilon": epsilon}, + ) + + def evaluate(self, parameters, config): + """ + Evaluates the local model on the validation data and returns the loss and accuracy. + + Args: + parameters: Parameters received from the server. + config: Configuration information. + + Returns: + Tuple: Loss, number of validation examples, and accuracy information. + """ + print(f"[Client {self.cid}] evaluate, config: {config}") + self.local_model.set_parameters(parameters) + loss, accuracy , auc = self.local_model.evaluate( + self.valloader, device=self.device + ) + self.losses.append(loss) + self.accuracies.append(accuracy) + + return float(loss), len(self.valloader), {"accuracy": float(accuracy)} diff --git a/build/lib/MEDfl/LearningManager/dynamicModal.py b/build/lib/MEDfl/LearningManager/dynamicModal.py new file mode 100644 index 0000000..12db5c4 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/dynamicModal.py @@ -0,0 +1,287 @@ +import torch +import torch.nn as nn +from sklearn.svm import SVC + +class DynamicModel: + """DynamicModel class for creating various types of neural network models.""" + + # Create a binary classifier model + @staticmethod + def create_binary_classifier(input_dim, hidden_dims, output_dim, activation='relu', dropout_rate=0.0, + batch_norm=False, use_gpu=False): + """ + Creates a binary classifier neural network model with customizable architecture. + + Args: + input_dim (int): Dimension of the input data. + hidden_dims (List[int]): List of dimensions for hidden layers. + output_dim (int): Dimension of the output (number of classes). + activation (str, optional): Activation function for hidden layers. Default is 'relu'. + dropout_rate (float, optional): Dropout rate for regularization. Default is 0.0 (no dropout). + batch_norm (bool, optional): Whether to apply batch normalization. Default is False. + use_gpu (bool, optional): Whether to use GPU acceleration. Default is False. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + layers = [] + + for i in range(len(hidden_dims)): + if i == 0: + layers.append(nn.Linear(input_dim, hidden_dims[0])) + else: + layers.append(nn.Linear(hidden_dims[i - 1], hidden_dims[i])) + + if batch_norm: + layers.append(nn.BatchNorm1d(hidden_dims[i])) + + activation_layer = nn.ReLU() if activation == 'relu' else nn.Sigmoid() + layers.append(activation_layer) + + if dropout_rate > 0.0: + layers.append(nn.Dropout(dropout_rate)) + + layers.append(nn.Linear(hidden_dims[-1], output_dim)) + layers.append(nn.Sigmoid()) + + model = nn.Sequential(*layers) + + if use_gpu: + model = model.cuda() + + return model + + # Create a multi-class classifier model + @staticmethod + def create_multiclass_classifier(input_dim, hidden_dims, output_dim, activation='relu', dropout_rate=0.0, + batch_norm=False, use_gpu=False): + """ + Creates a multiclass classifier neural network model with customizable architecture. + + Args: + input_dim (int): Dimension of the input data. + hidden_dims (List[int]): List of dimensions for hidden layers. + output_dim (int): Dimension of the output (number of classes). + activation (str, optional): Activation function for hidden layers. Default is 'relu'. + dropout_rate (float, optional): Dropout rate for regularization. Default is 0.0 (no dropout). + batch_norm (bool, optional): Whether to apply batch normalization. Default is False. + use_gpu (bool, optional): Whether to use GPU acceleration. Default is False. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + layers = [] + + for i in range(len(hidden_dims)): + if i == 0: + layers.append(nn.Linear(input_dim, hidden_dims[0])) + else: + layers.append(nn.Linear(hidden_dims[i - 1], hidden_dims[i])) + + if batch_norm: + layers.append(nn.BatchNorm1d(hidden_dims[i])) + + activation_layer = nn.ReLU() if activation == 'relu' else nn.Sigmoid() + layers.append(activation_layer) + + if dropout_rate > 0.0: + layers.append(nn.Dropout(dropout_rate)) + + layers.append(nn.Linear(hidden_dims[-1], output_dim)) + layers.append(nn.LogSoftmax(dim=1)) + + model = nn.Sequential(*layers) + + if use_gpu: + model = model.cuda() + + return model + + # Create a linear regressor model + @staticmethod + def create_linear_regressor(input_dim, output_dim, use_gpu=False): + """ + Creates a linear regressor neural network model. + + Args: + input_dim (int): Dimension of the input data. + output_dim (int): Dimension of the output. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + class LinearRegressionModel(nn.Module): + def __init__(self): + super(LinearRegressionModel, self).__init__() + self.linear = nn.Linear(input_dim, output_dim) + + def forward(self, x): + return self.linear(x) + + model = LinearRegressionModel() + + if use_gpu: + model = model.cuda() + + return model + + # Create a logistic regressor model + @staticmethod + def create_logistic_regressor(input_dim, use_gpu=False): + """ + Creates a logistic regressor neural network model. + + Args: + input_dim (int): Dimension of the input data. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + class LogisticRegressionModel(nn.Module): + def __init__(self): + super(LogisticRegressionModel, self).__init__() + self.linear = nn.Linear(input_dim, 1) + + def forward(self, x): + return torch.sigmoid(self.linear(x)) + + model = LogisticRegressionModel() + + if use_gpu: + model = model.cuda() + + return model + + @staticmethod + def create_convolutional_neural_network(input_channels, output_channels, kernel_size, use_gpu=False): + """ + Creates a convolutional neural network (CNN) model. + + Args: + input_channels (int): Number of input channels. + output_channels (int): Number of output channels. + kernel_size (int): Size of the convolutional kernel. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + model = nn.Sequential( + nn.Conv2d(input_channels, output_channels, kernel_size), + nn.ReLU(), + nn.MaxPool2d(2) + ) + + if use_gpu: + model = model.cuda() + + return model + + @staticmethod + def create_recurrent_neural_network(input_size, hidden_size, use_gpu=False): + """ + Creates a recurrent neural network (RNN) model. + + Args: + input_size (int): Size of the input. + hidden_size (int): Size of the hidden layer. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + model = nn.RNN(input_size, hidden_size, batch_first=True) + + if use_gpu: + model = model.cuda() + + return model + + @staticmethod + def create_lstm_network(input_size, hidden_size, use_gpu=False): + """ + Creates a Long Short-Term Memory (LSTM) network model. + + Args: + input_size (int): Size of the input layer. + hidden_size (int): Size of the hidden layer. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + model = nn.LSTM(input_size, hidden_size, batch_first=True) + + if use_gpu: + model = model.cuda() + + return model + + # Create the dynamic model + def create_model(self, model_type: str, params_dict={}) -> torch.nn.Module: + """ + Create a specific type of model dynamically based on the given parameters. + + Args: + model_type (str): Type of the model to create ('Binary Classifier', 'Multiclass Classifier', 'Linear Regressor', 'Logistic Regressor', 'SVM', 'Neural Network Classifier', 'Convolutional Neural Network', 'Recurrent Neural Network', 'LSTM Network', 'Autoencoder'). + params_dict (dict): Dictionary containing parameters for model creation. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + if model_type == 'Binary Classifier': + return self.create_binary_classifier( + params_dict['input_dim'], params_dict['hidden_dims'], + params_dict['output_dim'], params_dict.get('activation', 'relu'), + params_dict.get('dropout_rate', 0.0), params_dict.get('batch_norm', False), + params_dict.get('use_gpu', False) + ) + elif model_type == 'Multiclass Classifier': + return self.create_multiclass_classifier( + params_dict['input_dim'], params_dict['hidden_dims'], + params_dict['output_dim'], params_dict.get('activation', 'relu'), + params_dict.get('dropout_rate', 0.0), params_dict.get('batch_norm', False), + params_dict.get('use_gpu', False) + ) + elif model_type == 'Linear Regressor': + return self.create_linear_regressor( + params_dict['input_dim'], params_dict['output_dim'], + params_dict.get('use_gpu', False) + ) + elif model_type == 'Logistic Regressor': + return self.create_logistic_regressor( + params_dict['input_dim'], params_dict.get('use_gpu', False) + ) + elif model_type == 'Neural Network Classifier': + return self.create_neural_network_classifier( + params_dict['input_dim'], params_dict['output_dim'], + params_dict['hidden_dims'], params_dict.get('activation', 'relu'), + params_dict.get('dropout_rate', 0.0), params_dict.get('batch_norm', False), + params_dict.get('num_layers', 2), params_dict.get('use_gpu', False) + ) + elif model_type == 'Convolutional Neural Network': + return self.create_convolutional_neural_network( + params_dict['input_channels'], params_dict['output_channels'], + params_dict['kernel_size'], params_dict.get('use_gpu', False) + ) + elif model_type == 'Recurrent Neural Network': + return self.create_recurrent_neural_network( + params_dict['input_size'], params_dict['hidden_size'], + params_dict.get('use_gpu', False) + ) + elif model_type == 'LSTM Network': + return self.create_lstm_network( + params_dict['input_size'], params_dict['hidden_size'], + params_dict.get('use_gpu', False) + ) + elif model_type == 'Autoencoder': + return self.create_autoencoder( + params_dict['input_size'], params_dict['encoder_hidden_size'], + params_dict.get('use_gpu', False) + ) + else: + raise ValueError("Invalid model type provided") + + + diff --git a/build/lib/MEDfl/LearningManager/federated_dataset.py b/build/lib/MEDfl/LearningManager/federated_dataset.py new file mode 100644 index 0000000..4a451cc --- /dev/null +++ b/build/lib/MEDfl/LearningManager/federated_dataset.py @@ -0,0 +1,60 @@ +from MEDfl.NetManager.net_helper import * +from MEDfl.NetManager.net_manager_queries import * +from MEDfl.NetManager.database_connector import DatabaseManager + +class FederatedDataset: + def __init__( + self, + name: str, + train_nodes: list, + test_nodes: list, + trainloaders: list, + valloaders: list, + testloaders: list, + ): + """ + Represents a Federated Dataset. + + :param name: Name of the Federated Dataset. + :param train_nodes: List of train nodes. + :param test_nodes: List of test nodes. + :param trainloaders: List of train data loaders. + :param valloaders: List of validation data loaders. + :param testloaders: List of test data loaders. + """ + self.name = name + self.train_nodes = train_nodes + self.test_nodes = test_nodes + self.trainloaders = trainloaders + self.valloaders = valloaders + self.testloaders = testloaders + self.size = len(self.trainloaders[0].dataset[0][0]) + + db_manager = DatabaseManager() + db_manager.connect() + self.eng = db_manager.get_connection() + + def create(self, FLsetupId: int): + """ + Create a new Federated Dataset in the database. + + :param FLsetupId: The FLsetup ID associated with the Federated Dataset. + """ + query_params = {"name": self.name, "FLsetupId": FLsetupId} + fedDataId = get_feddataset_id_from_name(self.name) + if fedDataId : + self.id = fedDataId + else: + self.eng.execute(text(INSERT_FLDATASET_QUERY), query_params) + self.id = get_feddataset_id_from_name(self.name) + + + def update(self, FLpipeId: int, FedId: int): + """ + Update the FLpipe ID associated with the Federated Dataset in the database. + + :param FLpipeId: The new FLpipe ID to be updated. + :param FedId: The Federated Dataset ID. + """ + query_params = {"FLpipeId": FLpipeId, "FedId": FedId} + self.eng.execute(text(UPDATE_FLDATASET_QUERY), **query_params) diff --git a/build/lib/MEDfl/LearningManager/flpipeline.py b/build/lib/MEDfl/LearningManager/flpipeline.py new file mode 100644 index 0000000..67c5bd5 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/flpipeline.py @@ -0,0 +1,192 @@ +import datetime +from typing import List +import json +import pandas as pd + + +# File: create_query.py +from sqlalchemy import text +from torch.utils.data import DataLoader, TensorDataset +import torch + +from MEDfl.LearningManager.server import FlowerServer +from MEDfl.LearningManager.utils import params, test +from MEDfl.NetManager.net_helper import get_flpipeline_from_name +from MEDfl.NetManager.net_manager_queries import (CREATE_FLPIPELINE_QUERY, + DELETE_FLPIPELINE_QUERY , CREATE_TEST_RESULTS_QUERY) +from MEDfl.NetManager.database_connector import DatabaseManager + +def create_query(name, description, creation_date, result): + query = text( + f"INSERT INTO FLpipeline(name, description, creation_date, results) " + f"VALUES ('{name}', '{description}', '{creation_date}', '{result}')" + ) + return query + + + +class FLpipeline: + """ + FLpipeline class for managing Federated Learning pipelines. + + Attributes: + name (str): The name of the FLpipeline. + description (str): A description of the FLpipeline. + server (FlowerServer): The FlowerServer object associated with the FLpipeline. + + Methods: + __init__(self, name: str, description: str, server: FlowerServer) -> None: + Initialize FLpipeline with the specified name, description, and server. + + + """ + + def __init__( + self, name: str, description: str, server: FlowerServer + ) -> None: + self.name = name + self.description = description + self.server = server + self.validate() + + db_manager = DatabaseManager() + db_manager.connect() + self.eng = db_manager.get_connection() + + def validate(self) -> None: + """ + Validate the name, description, and server attributes. + Raises: + TypeError: If the name is not a string, the description is not a string, + or the server is not a FlowerServer object. + """ + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.description, str): + raise TypeError("description argument must be a string") + + # if not isinstance(self.server, FlowerServer): + # raise TypeError("server argument must be a FlowerServer") + + def create(self, result: str) -> None: + """ + Create a new FLpipeline entry in the database with the given result. + + Args: + result (str): The result string to store in the database. + + """ + creation_date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + query = CREATE_FLPIPELINE_QUERY.format( + name=self.name, + description=self.description, + creation_date=creation_date, + result=result, + ) + self.eng.execute(text(query)) + self.id = get_flpipeline_from_name(self.name) + try: + self.server.fed_dataset.update( + FLpipeId=self.id, FedId=self.server.fed_dataset.id + ) + except: + pass + + def delete(self) -> None: + """ + Delete the FLpipeline entry from the database based on its name. + + Note: This is a placeholder method and needs to be implemented based on your specific database setup. + + """ + # Placeholder code for deleting the FLpipeline entry from the database based on the name. + # You need to implement the actual deletion based on your database setup. + self.eng.execute(DELETE_FLPIPELINE_QUERY.format(self.name)) + + + def test_by_node(self, node_name: str, test_frac=1) -> dict: + """ + Test the FLpipeline by node with the specified test_frac. + + Args: + node_name (str): The name of the node to test. + test_frac (float, optional): The fraction of the test data to use. Default is 1. + + Returns: + dict: A dictionary containing the node name and the classification report. + + """ + idx = self.server.fed_dataset.test_nodes.index(node_name) + global_model, test_loader = ( + self.server.global_model, + self.server.fed_dataset.testloaders[idx], + ) + + # Move model to GPU if available + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + global_model.model.to(device) + + # Prepare test data + test_data = test_loader.dataset + num_samples = int(test_frac * len(test_data)) + test_data = TensorDataset(test_data[:num_samples][0].to(device), test_data[:num_samples][1].to(device)) + + # Create DataLoader for test data + test_loader = DataLoader(test_data, batch_size=params["test_batch_size"]) + + # Perform testing + classification_report = test(model=global_model.model, test_loader=test_loader, device=device) + + return { + "node_name": node_name, + "classification_report": str(classification_report), + } + + + def auto_test(self, test_frac=1) -> List[dict]: + """ + Automatically test the FLpipeline on all nodes with the specified test_frac. + + Args: + test_frac (float, optional): The fraction of the test data to use. Default is 1. + + Returns: + List[dict]: A list of dictionaries containing the node names and the classification reports. + + """ + result = [ + self.test_by_node(node, test_frac) + for node in self.server.fed_dataset.test_nodes + ] + self.create("\n".join(str(res).replace("'", '"') for res in result)) + + # stockage des resultats des tests + for entry in result: + node_name = entry['node_name'] + classification_report_str = entry['classification_report'] + + # Convert the 'classification_report' string to a dictionary + classification_report_dict = json.loads(classification_report_str.replace("'", "\"")) + try: + # Insert record into the 'testResults' table + query = CREATE_TEST_RESULTS_QUERY.format( + pipelineId = self.id, + nodeName = node_name , + confusion_matrix = json.dumps(classification_report_dict['confusion matrix']), + accuracy =classification_report_dict['Accuracy'] , + sensivity = classification_report_dict['Sensitivity/Recall'] , + ppv = classification_report_dict['PPV/Precision'] , + npv= classification_report_dict['NPV'] , + f1score= classification_report_dict['F1-score'] , + fpr= classification_report_dict['False positive rate'] , + tpr= classification_report_dict['True positive rate'] + ) + self.eng.execute(text(query)) + except Exception as e: + # This block will catch any other exceptions + print(f"An unexpected error occurred: {e}") + + + + return result diff --git a/build/lib/MEDfl/LearningManager/model.py b/build/lib/MEDfl/LearningManager/model.py new file mode 100644 index 0000000..f68dc73 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/model.py @@ -0,0 +1,224 @@ +#!/usr/bin/env python3 +# froked from https://github.com/pythonlessons/mltu/blob/main/mltu/torch/model.py + +import typing +from collections import OrderedDict +from typing import Dict, List, Optional, Tuple + +import numpy as np +import torch +import torch.nn as nn +from sklearn.metrics import accuracy_score,roc_auc_score + +from .utils import params + + +class Model: + """ + Model class for training and testing PyTorch neural networks. + + Attributes: + model (torch.nn.Module): PyTorch neural network. + optimizer (torch.optim.Optimizer): PyTorch optimizer. + criterion (typing.Callable): Loss function. + """ + + def __init__( + self, + model: torch.nn.Module, + optimizer: torch.optim.Optimizer, + criterion: typing.Callable, + ) -> None: + """ + Initialize Model class with the specified model, optimizer, and criterion. + + Args: + model (torch.nn.Module): PyTorch neural network. + optimizer (torch.optim.Optimizer): PyTorch optimizer. + criterion (typing.Callable): Loss function. + """ + self.model = model + self.optimizer = optimizer + self.criterion = criterion + # Get device on which model is running + self.validate() + + def validate(self) -> None: + """ + Validate model and optimizer. + """ + if not isinstance(self.model, torch.nn.Module): + raise TypeError("model argument must be a torch.nn.Module") + + if not isinstance(self.optimizer, torch.optim.Optimizer): + raise TypeError( + "optimizer argument must be a torch.optim.Optimizer" + ) + + def get_parameters(self) -> List[np.ndarray]: + """ + Get the parameters of the model as a list of NumPy arrays. + + Returns: + List[np.ndarray]: The parameters of the model as a list of NumPy arrays. + """ + return [ + val.cpu().numpy() for _, val in self.model.state_dict().items() + ] + + def set_parameters(self, parameters: List[np.ndarray]) -> None: + """ + Set the parameters of the model from a list of NumPy arrays. + + Args: + parameters (List[np.ndarray]): The parameters to be set. + """ + params_dict = zip(self.model.state_dict().keys(), parameters) + state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) + self.model.load_state_dict(state_dict, strict=True) + + def train( + self, train_loader, epoch, device, privacy_engine, diff_priv=False + ) -> float: + """ + Train the model on the given train_loader for one epoch. + + Args: + train_loader: The data loader for training data. + epoch (int): The current epoch number. + device: The device on which to perform the training. + privacy_engine: The privacy engine used for differential privacy (if enabled). + diff_priv (bool, optional): Whether differential privacy is used. Default is False. + + Returns: + float: The value of epsilon used in differential privacy. + """ + self.model.train() + epsilon = 0 + losses = [] + top1_acc = [] + + for i, (X_train, y_train) in enumerate(train_loader): + X_train, y_train = X_train.to(device), y_train.to(device) + + self.optimizer.zero_grad() + + # compute output + y_hat = torch.squeeze(self.model(X_train), 1) + loss = self.criterion(y_hat, y_train) + + preds = np.argmax(y_hat.detach().cpu().numpy(), axis=0) + labels = y_train.detach().cpu().numpy() + + # measure accuracy and record loss + acc = (preds == labels).mean() + + losses.append(loss.item()) + top1_acc.append(acc) + + loss.backward() + self.optimizer.step() + + if diff_priv: + epsilon = privacy_engine.get_epsilon(float(params["DELTA"])) + + if (i + 1) % 10 == 0: + if diff_priv: + epsilon = privacy_engine.get_epsilon(float(params["DELTA"])) + print( + f"\tTrain Epoch: {epoch} \t" + f"Loss: {np.mean(losses):.6f} " + f"Acc@1: {np.mean(top1_acc) * 100:.6f} " + f"(ε = {epsilon:.2f}, δ = {params['DELTA']})" + ) + else: + print( + f"\tTrain Epoch: {epoch} \t" + f"Loss: {np.mean(losses):.6f} " + f"Acc@1: {np.mean(top1_acc) * 100:.6f}" + ) + + return epsilon + + def evaluate(self, val_loader, device=torch.device("cpu")) -> Tuple[float, float]: + """ + Evaluate the model on the given validation data. + + Args: + val_loader: The data loader for validation data. + device: The device on which to perform the evaluation. Default is 'cpu'. + + Returns: + Tuple[float, float]: The evaluation loss and accuracy. + """ + correct, total, loss, accuracy, auc = 0, 0, 0.0, [], [] + self.model.eval() + + with torch.no_grad(): + for X_test, y_test in val_loader: + X_test, y_test = X_test.to(device), y_test.to(device) # Move data to device + + y_hat = torch.squeeze(self.model(X_test), 1) + + + criterion = self.criterion.to(y_hat.device) + loss += criterion(y_hat, y_test).item() + + + # Move y_hat to CPU for accuracy computation + y_hat_cpu = y_hat.cpu().detach().numpy() + accuracy.append(accuracy_score(y_test.cpu().numpy(), y_hat_cpu.round())) + + # Move y_test to CPU for AUC computation + y_test_cpu = y_test.cpu().numpy() + y_prob_cpu = y_hat.cpu().detach().numpy() + if (len(np.unique(y_test_cpu)) != 1): + auc.append(roc_auc_score(y_test_cpu, y_prob_cpu)) + + total += y_test.size(0) + correct += np.sum(y_hat_cpu.round() == y_test_cpu) + + loss /= len(val_loader.dataset) + return loss, np.mean(accuracy), np.mean(auc) + + + @staticmethod + def save_model(model , model_name:str): + """ + Saves a PyTorch model to a file. + + Args: + model (torch.nn.Module): PyTorch model to be saved. + model_name (str): Name of the model file. + + Raises: + Exception: If there is an issue during the saving process. + + Returns: + None + """ + try: + torch.save(model, '../../notebooks/.ipynb_checkpoints/trainedModels/' + model_name + ".pth") + except Exception as e: + raise Exception(f"Error saving the model: {str(e)}") + + @staticmethod + def load_model(model_path: str): + """ + Loads a PyTorch model from a file. + + Args: + model_path (str): Path to the model file to be loaded. + + Returns: + torch.nn.Module: Loaded PyTorch model. + """ + # Ensure models are loaded onto the CPU when CUDA is not available + torch_kwargs = {"weights_only": False} + if torch.cuda.is_available(): + loaded_model = torch.load(model_path , **torch_kwargs) + else: + loaded_model = torch.load(model_path, map_location=torch.device('cpu') , **torch_kwargs) + return loaded_model + + diff --git a/build/lib/MEDfl/LearningManager/params.yaml b/build/lib/MEDfl/LearningManager/params.yaml new file mode 100644 index 0000000..83fc6fa --- /dev/null +++ b/build/lib/MEDfl/LearningManager/params.yaml @@ -0,0 +1,14 @@ +DELTA: 1.0e-05 +EPSILON: 5.0 +MAX_GRAD_NORM: 1.0 +diff_privacy: true +lr: 0.001 +min_evalclient: 2 +num_rounds: 20 +optimizer: SGD +path_to_master_csv: /home/local/USHERBROOKE/saho6810/MEDfl/code/MEDfl/notebooks/data/masterDataSet/miniDiabete.csv +path_to_test_csv: /home/local/USHERBROOKE/saho6810/MEDfl/code/MEDfl/notebooks/data/masterDataSet/Mimic_train.csv +task: BinaryClassification +test_batch_size: 1 +train_batch_size: 32 +train_epochs: 20 diff --git a/build/lib/MEDfl/LearningManager/params_optimiser.py b/build/lib/MEDfl/LearningManager/params_optimiser.py new file mode 100644 index 0000000..4d4a1ea --- /dev/null +++ b/build/lib/MEDfl/LearningManager/params_optimiser.py @@ -0,0 +1,442 @@ +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +import torch +import torch.nn as nn +import torch.optim as optim +import torch.nn.functional as F +from torch.utils.data import TensorDataset, DataLoader +from sklearn.model_selection import GridSearchCV, train_test_split +from sklearn.base import BaseEstimator +from sklearn.metrics import make_scorer, precision_score, recall_score, accuracy_score, f1_score,roc_auc_score, balanced_accuracy_score +import optuna + +from MEDfl.LearningManager.model import Model +from MEDfl.LearningManager.strategy import Strategy +from MEDfl.LearningManager.server import FlowerServer +from MEDfl.LearningManager.flpipeline import FLpipeline + +class BinaryClassifier(nn.Module): + def __init__(self, input_size, num_layers, layer_size): + super(BinaryClassifier, self).__init__() + + # Input layer + self.layers = [nn.Linear(input_size, layer_size)] + + # Hidden layers + for _ in range(num_layers - 1): + self.layers.append(nn.Linear(layer_size, layer_size)) + + # Output layer + self.layers.append(nn.Linear(layer_size, 1)) + + # ModuleList to handle dynamic number of layers + self.layers = nn.ModuleList(self.layers) + + def forward(self, x): + for layer in self.layers[:-1]: + x = F.relu(layer(x)) + x = self.layers[-1](x) + return x + +class CustomPyTorchClassifier(BaseEstimator): + def __init__(self, hidden_dim=10, lr=0.001, pos_weight=1, th=0.5, max_epochs=10, batch_size=32): + self.hidden_dim = hidden_dim + self.lr = lr + self.pos_weight = pos_weight + self.max_epochs = max_epochs + self.batch_size = batch_size + self.th = th + self.model = None + + def fit(self, X, y): + if isinstance(X, torch.Tensor): + X = X.numpy() + if isinstance(y, torch.Tensor): + y = y.numpy() + + input_dim = X.shape[1] + self.model = nn.Sequential( + nn.Linear(input_dim, self.hidden_dim), + nn.ReLU(), + nn.Linear(self.hidden_dim, 1), + nn.Sigmoid() + ) + + criterion = nn.BCEWithLogitsLoss(pos_weight=torch.tensor(self.pos_weight)) + optimizer = optim.Adam(self.model.parameters(), lr=self.lr) + + train_data = TensorDataset(torch.from_numpy(X).float(), torch.from_numpy(y).float()) + train_loader = DataLoader(train_data, batch_size=self.batch_size, shuffle=True) + + self.model.train() + for epoch in range(self.max_epochs): + for inputs, labels in train_loader: + optimizer.zero_grad() + outputs = self.model(inputs) + loss = criterion(outputs.squeeze(), labels) + loss.backward() + optimizer.step() + return self + + def predict(self, X): + if isinstance(X, torch.Tensor): + X = X.numpy() + + self.model.eval() + with torch.no_grad(): + outputs = self.model(torch.from_numpy(X).float()) + predictions = (outputs.squeeze() > self.th).float().numpy() + return predictions + + def score(self, X, y): + predictions = self.predict(X) + return accuracy_score(y, predictions) + + +class ParamsOptimiser: + def __init__(self, X_train = None, y_train=None, X_test=None, y_test=None): + if isinstance(X_train, pd.DataFrame): + X_train = X_train.to_numpy() + if isinstance(y_train, pd.Series): + y_train = y_train.to_numpy() + if isinstance(X_test, pd.DataFrame): + X_test = X_test.to_numpy() + if isinstance(y_test, pd.Series): + y_test = y_test.to_numpy() + + self.X_train = X_train + self.y_train = y_train + self.X_test = X_test + self.y_test = y_test + + def perform_grid_search(self, param_grid, scoring_metric='recall', cv=3, verbose=1): + pytorch_model = CustomPyTorchClassifier() + scorer = make_scorer(recall_score, greater_is_better=True) + + if scoring_metric == 'precision': + scorer = make_scorer(precision_score) + elif scoring_metric == 'accuracy': + scorer = make_scorer(accuracy_score) + elif scoring_metric == 'recall': + scorer = make_scorer(recall_score) + elif scoring_metric == 'f1': + scorer = make_scorer(f1_score) + + grid_search = GridSearchCV(pytorch_model, param_grid, scoring=scorer, cv=cv, refit=scoring_metric, verbose=verbose) + grid_search.fit(self.X_train, self.y_train) + + self.grid_search_results = grid_search # Save the grid search results + + return grid_search + + # Inside the CustomModelTrainer class + def plot_results(self, params_to_plot=None): + results = pd.DataFrame(self.grid_search_results.cv_results_) + + if params_to_plot is None: + # Create a column for configuration details + results['config'] = results['params'].apply(lambda x: str(x)) + + # Visualize mean test scores along with configurations + plt.figure(figsize=(15, 8)) + bar_plot = plt.bar(results.index, results['mean_test_score'], color='blue', alpha=0.7) + plt.xticks(results.index, results['config'], rotation='vertical', fontsize=8) + plt.ylabel('Mean Test Score') + plt.title('Mean Test Scores for Each Configuration') + plt.tight_layout() + + # Add values on top of bars + for bar, score in zip(bar_plot, results['mean_test_score']): + plt.text(bar.get_x() + bar.get_width() / 2 - 0.15, bar.get_height() + 0.01, f'{score:.3f}', fontsize=8) + + plt.show() + return + + try: + # Dynamically get the column names for the specified scoring metric + mean_test_col = f'mean_test_{params_to_plot[0]}' + param_cols = [f'param_{param}' for param in params_to_plot] + + if len(params_to_plot) == 1: + # Plotting the heatmap for a single parameter + plt.figure(figsize=(8, 6)) + sns.heatmap(results.pivot_table(index=param_cols[0]), + annot=True, cmap='YlGnBu', fmt=".3f", cbar_kws={'label': mean_test_col}) + plt.title(mean_test_col.capitalize()) + plt.show() + elif len(params_to_plot) == 2: + # Create a pair plot for two parameters + plt.figure(figsize=(8, 6)) + scores = results.pivot_table(index=param_cols[0], columns=param_cols[1], values=f'mean_test_score', aggfunc="mean") + sns.heatmap(scores, annot=True, cmap='YlGnBu', fmt=".3f", cbar_kws={'label': mean_test_col}) + plt.title(mean_test_col.capitalize()) + plt.show() + else: + print("Invalid number of parameters to plot. You can provide either one or two parameters.") + except KeyError as e: + print(f"Error: {e}. Make sure the specified scoring metric exists in the results DataFrame.") + + + + def optuna_optimisation(self, direction, params): + # Create the data loaders here + train_data = TensorDataset(torch.from_numpy(self.X_train).float(), torch.from_numpy(self.y_train).float()) + test_data = TensorDataset(torch.from_numpy(self.X_test).float(), torch.from_numpy(self.y_test).float()) + + + + def objective(trial): + + batch_size=trial.suggest_int('batch_size', **params['batch_size']) + + train_loader = DataLoader(train_data, batch_size=batch_size, shuffle=True) + test_loader = DataLoader(test_data, batch_size=batch_size, shuffle=False) + + # Create the model with the suggested hyperparameters + model = BinaryClassifier(input_size=self.X_train.shape[1], + num_layers=trial.suggest_int('num_layers', **params['num_layers']) , + layer_size=trial.suggest_int('hidden_size', **params['hidden_size'])) + + # Define the loss function and optimizer + criterion = nn.BCEWithLogitsLoss() + optimizer_name = trial.suggest_categorical('optimizer', params['optimizer']) + learning_rate = trial.suggest_float('learning_rate', **params['learning_rate']) + + + if optimizer_name == 'Adam': + optimizer = optim.Adam(model.parameters(), lr=learning_rate) + elif optimizer_name == 'SGD': + optimizer = optim.SGD(model.parameters(), lr=learning_rate) + elif optimizer_name == 'RMSprop': + optimizer = optim.RMSprop(model.parameters(), lr=learning_rate) + + # Training loop + num_epochs = trial.suggest_int('num_epochs', **params['num_epochs']) + for epoch in range(num_epochs): + model.train() + for batch_X, batch_y in train_loader: + optimizer.zero_grad() + outputs = model(batch_X) + loss = criterion(outputs.squeeze(), batch_y) + loss.backward() + optimizer.step() + + # Evaluation + model.eval() + predictions = [] + true_labels = [] + with torch.no_grad(): + for batch_X, batch_y in test_loader: + outputs = model(batch_X) + predictions.extend(torch.sigmoid(outputs).numpy()) + true_labels.extend(batch_y.numpy()) + + # Calculate F1 score + # f1 = f1_score(true_labels, (np.array(predictions) > 0.5).astype(int)) + auc = roc_auc_score(true_labels, predictions) + + trial.report(auc, epoch) + + # Handle pruning based on the intermediate value + if trial.should_prune(): + raise optuna.TrialPruned() + + return auc + + # Create an Optuna study + study = optuna.create_study(direction=direction) + study.optimize(objective, n_trials=params['n_trials']) + + self.study = study + + # Get the best hyperparameters + best_params = study.best_params + print(f"Best Hyperparameters: {best_params}") + + return study + + def train_optimized_model(self ,trial ,th_min , th_max): + + best_params = self.study.best_params + + threshold = trial.suggest_float('threashhold', th_min, th_max, log=True) + + train_data = TensorDataset(torch.from_numpy(self.X_train).float(), torch.from_numpy(self.y_train).float()) + test_data = TensorDataset(torch.from_numpy(self.X_test).float(), torch.from_numpy(self.y_test).float()) + + train_loader = DataLoader(train_data, batch_size=best_params['batch_size'], shuffle=True) + test_loader = DataLoader(test_data, batch_size=best_params['batch_size'], shuffle=False) + + + # Use the best hyperparameters to train the final model + final_model = BinaryClassifier(input_size=self.X_train.shape[1], layer_size=best_params['hidden_size'] , num_layers=best_params['num_layers']) + final_optimizer = self.get_optimizer(best_params['optimizer'], final_model.parameters(), best_params['learning_rate']) + final_criterion = nn.BCEWithLogitsLoss() + + num_epochs = best_params['num_epochs'] + for epoch in range(num_epochs): + final_model.train() + for batch_X, batch_y in train_loader: + final_optimizer.zero_grad() + outputs = final_model(batch_X) + loss = final_criterion(outputs.squeeze(), batch_y) + loss.backward() + final_optimizer.step() + + # Evaluate the final model on the test set + final_model.eval() + with torch.no_grad(): + predictions = [] + true_labels = [] + for batch_X, batch_y in test_loader: + outputs = final_model(batch_X) + predictions.extend(torch.sigmoid(outputs).numpy()) + true_labels.extend(batch_y.numpy()) + + final_balanced_acc = balanced_accuracy_score(true_labels, (np.array(predictions) > threshold).astype(int)) + print(f"Model balanced accuracy: {final_balanced_acc}") + + return final_balanced_acc + + def get_optimizer(self, optimizer_name, parameters, learning_rate): + if optimizer_name == 'Adam': + return optim.Adam(parameters, lr=learning_rate) + elif optimizer_name == 'SGD': + return optim.SGD(parameters, lr=learning_rate) + elif optimizer_name == 'RMSprop': + return optim.RMSprop(parameters, lr=learning_rate) + else: + raise ValueError(f"Unknown optimizer: {optimizer_name}") + + def perform_grid_search(self, param_grid, scoring_metric='recall', cv=3, verbose=1): + pytorch_model = CustomPyTorchClassifier() + scorer = make_scorer(recall_score, greater_is_better=True) + + if scoring_metric == 'precision': + scorer = make_scorer(precision_score) + elif scoring_metric == 'accuracy': + scorer = make_scorer(accuracy_score) + elif scoring_metric == 'recall': + scorer = make_scorer(recall_score) + elif scoring_metric == 'f1': + scorer = make_scorer(f1_score) + + grid_search = GridSearchCV(pytorch_model, param_grid, scoring=scorer, cv=cv, refit=scoring_metric, verbose=verbose) + grid_search.fit(self.X_train, self.y_train) + + self.grid_search_results = grid_search # Save the grid search results + + return grid_search + + + def plot_param_importances(self): + return optuna.visualization.plot_param_importances(self.study) + + def plot_slice(self , params): + return optuna.visualization.plot_slice(self.study , params=params) + + def plot_parallel_coordinate(self): + return optuna.visualization.plot_parallel_coordinate(self.study) + + def plot_rank(self , params=None): + return optuna.visualization.plot_rank(self.study , params=params) + + def plot_optimization_history(self): + return optuna.visualization.plot_optimization_history(self.study) + + def optimize_model_threashhold(self , n_trials , th_min , th_max): + additional_params = {'th_min': th_min, 'th_max': th_max} + + th_study = optuna.create_study(direction='maximize') + th_study.optimize(lambda trial: self.train_optimized_model(trial , **additional_params) , n_trials) + + # Get the best hyperparameters + best_params = th_study.best_params + print(f"Best Hyperparameters: {best_params}") + + return optuna.visualization.plot_rank(th_study , params=['threashhold']) + + def federated_params_iptim(self , params , direction, model, fl_dataset): + + def objective(trial): + + criterion = nn.BCEWithLogitsLoss() + + optimizer_name = trial.suggest_categorical('optimizer', params['optimizer']) + learning_rate = trial.suggest_float('learning_rate', **params['learning_rate']) + num_rounds = trial.suggest_int('num_rounds', **params['num_rounds']) + diff_privacy = trial.suggest_int('diff_privacy', **params['diff_privacy']) + diff_privacy = True if diff_privacy == 1 else False + + if optimizer_name == 'Adam': + optimizer = optim.Adam(model.parameters(), lr=learning_rate) + elif optimizer_name == 'SGD': + optimizer = optim.SGD(model.parameters(), lr=learning_rate) + elif optimizer_name == 'RMSprop': + optimizer = optim.RMSprop(model.parameters(), lr=learning_rate) + + # Creating a new Model instance using the specific model created by DynamicModel + global_model = Model(model, optimizer, criterion) + + # Get the initial params of the model + init_params = global_model.get_parameters() + + fl_strategy = trial.suggest_categorical('fl_strategy', params['fl_strategy']) + + learning_strategy = Strategy(fl_strategy, + fraction_fit = 1.0 , + fraction_evaluate = 1.0, + min_fit_clients = 2, + min_evaluate_clients = 2, + min_available_clients = 2 , + initial_parameters=init_params) + + learning_strategy.create_strategy() + + # Create The server + server = FlowerServer(global_model, strategy = learning_strategy, num_rounds = num_rounds, + num_clients = len(fl_dataset.trainloaders), + fed_dataset = fl_dataset,diff_privacy = diff_privacy, + # You can change the resources alocated for each client based on your machine + client_resources={'num_cpus': 1.0, 'num_gpus': 0.0} + ) + + ppl_1 = FLpipeline( name ="the first fl_pipeline",description = "this is our first FL pipeline", + server = server) + + # Run the Traning of the model + history = ppl_1.server.run() + + return server.auc[len(server.auc)-1] + + + + study = optuna.create_study(direction=direction) + study.optimize(objective, n_trials=params['n_trials']) + + self.study = study + + # Get the best hyperparameters + best_params = study.best_params + print(f"Best Hyperparameters: {best_params}") + + return study + + + + + + + + + + + + + + + + + diff --git a/build/lib/MEDfl/LearningManager/plot.py b/build/lib/MEDfl/LearningManager/plot.py new file mode 100644 index 0000000..c5f6c6e --- /dev/null +++ b/build/lib/MEDfl/LearningManager/plot.py @@ -0,0 +1,229 @@ +import matplotlib.pyplot as plt +import numpy as np +import seaborn as sns + +from .utils import * + +# Replace this with your actual code for data collection +results_dict = { + ("LR: 0.001, Optimizer: Adam", "accuracy"): [0.85, 0.89, 0.92, 0.94, ...], + ("LR: 0.001, Optimizer: Adam", "loss"): [0.2, 0.15, 0.1, 0.08, ...], + ("LR: 0.01, Optimizer: SGD", "accuracy"): [0.88, 0.91, 0.93, 0.95, ...], + ("LR: 0.01, Optimizer: SGD", "loss"): [0.18, 0.13, 0.09, 0.07, ...], + ("LR: 0.1, Optimizer: Adam", "accuracy"): [0.82, 0.87, 0.91, 0.93, ...], + ("LR: 0.1, Optimizer: Adam", "loss"): [0.25, 0.2, 0.15, 0.12, ...], +} +""" +server should have: + #len = num of rounds + self.accuracies + self.losses + +Client should have + # len = num of epochs + self.accuracies + self.losses + self.epsilons + self.deltas + +#common things : LR,SGD, Aggregation + +""" + + +class AccuracyLossPlotter: + """ + A utility class for plotting accuracy and loss metrics based on experiment results. + + Args: + results_dict (dict): Dictionary containing experiment results organized by parameters and metrics. + + Attributes: + results_dict (dict): Dictionary containing experiment results organized by parameters and metrics. + parameters (list): List of unique parameters in the experiment results. + metrics (list): List of unique metrics in the experiment results. + iterations (range): Range of iterations (rounds or epochs) in the experiment. + """ + + def __init__(self, results_dict): + """ + Initialize the AccuracyLossPlotter with experiment results. + + Args: + results_dict (dict): Dictionary containing experiment results organized by parameters and metrics. + """ + self.results_dict = results_dict + self.parameters = list( + set([param[0] for param in results_dict.keys()]) + ) + self.metrics = list(set([param[1] for param in results_dict.keys()])) + self.iterations = range(1, len(list(results_dict.values())[0]) + 1) + + def plot_accuracy_loss(self): + """ + Plot accuracy and loss metrics for different parameters. + """ + + plt.figure(figsize=(8, 6)) + + for param in self.parameters: + for metric in self.metrics: + key = (param, metric) + values = self.results_dict[key] + plt.plot( + self.iterations, + values, + label=f"{param} ({metric})", + marker="o", + linestyle="-", + ) + + plt.xlabel("Rounds") + plt.ylabel("Accuracy / Loss") + plt.title("Accuracy and Loss by Parameters") + plt.legend() + plt.grid(True) + plt.show() + + @staticmethod + def plot_global_confusion_matrix(pipeline_name: str): + """ + Plot a global confusion matrix based on pipeline results. + + Args: + pipeline_name (str): Name of the pipeline. + + Returns: + None + """ + # Get the id of the pipeline by name + pipeline_id = get_pipeline_from_name(pipeline_name) + # get the confusion matrix pf the pipeline + confusion_matrix = get_pipeline_confusion_matrix(pipeline_id) + + # Extracting confusion matrix values + TP = confusion_matrix['TP'] + FP = confusion_matrix['FP'] + FN = confusion_matrix['FN'] + TN = confusion_matrix['TN'] + + # Creating a matrix for visualization + matrix = [[TN, FP], + [FN, TP]] + + # Plotting the confusion matrix as a heatmap + plt.figure(figsize=(6, 4)) + sns.heatmap(matrix, annot=True, fmt='d', cmap='Blues', + xticklabels=['Predicted Negative', 'Predicted Positive'], + yticklabels=['Actual Negative', 'Actual Positive']) + plt.title('Global Confusion Matrix') + plt.xlabel('Predicted label') + plt.ylabel('True label') + plt.tight_layout() + + # Display the confusion matrix heatmap + plt.show() + + @staticmethod + def plot_confusion_Matrix_by_node(node_name: str, pipeline_name: str): + """ + Plot a confusion matrix for a specific node in the pipeline. + + Args: + node_name (str): Name of the node. + pipeline_name (str): Name of the pipeline. + + Returns: + None + """ + + # Get the id of the pipeline by name + pipeline_id = get_pipeline_from_name(pipeline_name) + # get the confusion matrix pf the pipeline + confusion_matrix = get_node_confusion_matrix( + pipeline_id, node_name=node_name) + + # Extracting confusion matrix values + TP = confusion_matrix['TP'] + FP = confusion_matrix['FP'] + FN = confusion_matrix['FN'] + TN = confusion_matrix['TN'] + + # Creating a matrix for visualization + matrix = [[TN, FP], + [FN, TP]] + + # Plotting the confusion matrix as a heatmap + plt.figure(figsize=(6, 4)) + sns.heatmap(matrix, annot=True, fmt='d', cmap='Blues', + xticklabels=['Predicted Negative', 'Predicted Positive'], + yticklabels=['Actual Negative', 'Actual Positive']) + plt.title('Confusion Matrix of node: '+node_name) + plt.xlabel('Predicted label') + plt.ylabel('True label') + plt.tight_layout() + + # Display the confusion matrix heatmap + plt.show() + return + + @staticmethod + def plot_classification_report(pipeline_name: str): + """ + Plot a comparison of classification report metrics between nodes. + + Args: + pipeline_name (str): Name of the pipeline. + + Returns: + None + """ + + colors = ['#FF5733', '#6A5ACD', '#3CB371', '#FFD700', '#FFA500', '#8A2BE2', '#00FFFF', '#FF00FF', '#A52A2A', '#00FF00'] + + # Get the id of the pipeline by name + pipeline_id = get_pipeline_from_name(pipeline_name) + + pipeline_results = get_pipeline_result(pipeline_id) + + nodesList = pipeline_results['nodename'] + classificationReports = [] + + for index, node in enumerate(nodesList): + classificationReports.append({ + 'Accuracy': pipeline_results['accuracy'][index], + 'Sensitivity/Recall': pipeline_results['sensivity'][index], + 'PPV/Precision': pipeline_results['ppv'][index], + 'NPV': pipeline_results['npv'][index], + 'F1-score': pipeline_results['f1score'][index], + 'False positive rate': pipeline_results['fpr'][index], + 'True positive rate': pipeline_results['tpr'][index] + }) + + metric_labels = list(classificationReports[0].keys()) # Assuming both reports have the same keys + + # Set the positions of the bars on the x-axis + x = np.arange(len(metric_labels)) + + # Set the width of the bars + width = 0.35 + + plt.figure(figsize=(12, 6)) + + for index, report in enumerate(classificationReports): + metric = list(report.values()) + plt.bar(x + (index - len(nodesList) / 2) * width / len(nodesList), metric, width / len(nodesList), + label=nodesList[index], color=colors[index % len(colors)]) + + # Adding labels, title, and legend + plt.xlabel('Metrics') + plt.ylabel('Values') + plt.title('Comparison of Classification Report Metrics between Nodes') + plt.xticks(ticks=x, labels=metric_labels, rotation=45) + plt.legend() + + # Show plot + plt.tight_layout() + plt.show() + + return diff --git a/build/lib/MEDfl/LearningManager/server.py b/build/lib/MEDfl/LearningManager/server.py new file mode 100644 index 0000000..fa88c10 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/server.py @@ -0,0 +1,181 @@ +#!/usr/bin/env python3 + +import copy +from typing import Dict, Optional, Tuple + +import flwr as fl +import torch + +from .client import FlowerClient +from .federated_dataset import FederatedDataset +from .model import Model +from .strategy import Strategy + + +class FlowerServer: + """ + A class representing the central server for Federated Learning using Flower. + + Attributes: + global_model (Model): The global model that will be federated among clients. + strategy (Strategy): The strategy used for federated learning, specifying communication and aggregation methods. + num_rounds (int): The number of federated learning rounds to perform. + num_clients (int): The number of clients participating in the federated learning process. + fed_dataset (FederatedDataset): The federated dataset used for training and evaluation. + diff_priv (bool): Whether differential privacy is used during the federated learning process. + accuracies (List[float]): A list to store the accuracy of the global model during each round. + losses (List[float]): A list to store the loss of the global model during each round. + flower_clients (List[FlowerClient]): A list to store the FlowerClient objects representing individual clients. + + """ + + def __init__( + self, + global_model: Model, + strategy: Strategy, + num_rounds: int, + num_clients: int, + fed_dataset: FederatedDataset, + diff_privacy: bool = False, + client_resources: Optional[Dict[str, float]] = {'num_cpus': 1, 'num_gpus': 0.0} + ) -> None: + """ + Initialize a FlowerServer object with the specified parameters. + + Args: + global_model (Model): The global model that will be federated among clients. + strategy (Strategy): The strategy used for federated learning, specifying communication and aggregation methods. + num_rounds (int): The number of federated learning rounds to perform. + num_clients (int): The number of clients participating in the federated learning process. + fed_dataset (FederatedDataset): The federated dataset used for training and evaluation. + diff_privacy (bool, optional): Whether differential privacy is used during the federated learning process. + Default is False. + """ + self.device = torch.device( + f"cuda" if torch.cuda.is_available() else "cpu" + ) + self.global_model = global_model + self.params = global_model.get_parameters() + self.global_model.model = global_model.model.to(self.device) + self.num_rounds = num_rounds + self.num_clients = num_clients + self.fed_dataset = fed_dataset + self.strategy = strategy + self.client_resources = client_resources + setattr( + self.strategy.strategy_object, + "min_available_clients", + self.num_clients, + ) + setattr( + self.strategy.strategy_object, + "initial_parameters", + fl.common.ndarrays_to_parameters(self.params), + ) + setattr(self.strategy.strategy_object, "evaluate_fn", self.evaluate) + self.fed_dataset = fed_dataset + self.diff_priv = diff_privacy + self.accuracies = [] + self.losses = [] + self.auc = [] + self.flower_clients = [] + self.validate() + + def validate(self) -> None: + """Validate global_model, strategy, num_clients, num_rounds, fed_dataset, diff_privacy""" + if not isinstance(self.global_model, Model): + raise TypeError("global_model argument must be a Model instance") + + # if not isinstance(self.strategy, Strategy): + # print(self.strategy) + # print(isinstance(self.strategy, Strategy)) + # raise TypeError("strategy argument must be a Strategy instance") + + if not isinstance(self.num_clients, int): + raise TypeError("num_clients argument must be an int") + + if not isinstance(self.num_rounds, int): + raise TypeError("num_rounds argument must be an int") + + if not isinstance(self.diff_priv, bool): + raise TypeError("diff_priv argument must be a bool") + + def client_fn(self, cid) -> FlowerClient: + """ + Return a FlowerClient object for a specific client ID. + + Args: + cid: The client ID. + + Returns: + FlowerClient: A FlowerClient object representing the individual client. + """ + + device = torch.device( + f"cuda:{int(cid) % 4}" if torch.cuda.is_available() else "cpu" + ) + client_model = copy.deepcopy(self.global_model) + + trainloader = self.fed_dataset.trainloaders[int(cid)] + valloader = self.fed_dataset.valloaders[int(cid)] + # this helps in making plots + + client = FlowerClient( + cid, client_model, trainloader, valloader, self.diff_priv + ) + self.flower_clients.append(client) + return client + + def evaluate( + self, + server_round: int, + parameters: fl.common.NDArrays, + config: Dict[str, fl.common.Scalar], + ) -> Optional[Tuple[float, Dict[str, fl.common.Scalar]]]: + """ + Evaluate the global model on the validation dataset and update the accuracies and losses. + + Args: + server_round (int): The current round of the federated learning process. + parameters (fl.common.NDArrays): The global model parameters. + config (Dict[str, fl.common.Scalar]): Configuration dictionary. + + Returns: + Optional[Tuple[float, Dict[str, fl.common.Scalar]]]: The evaluation loss and accuracy. + """ + testloader = self.fed_dataset.valloaders[0] + + self.global_model.set_parameters( + parameters + ) # Update model with the latest parameters + loss, accuracy ,auc = self.global_model.evaluate(testloader, self.device) + self.auc.append(auc) + self.losses.append(loss) + self.accuracies.append(accuracy) + + return loss, {"accuracy": accuracy} + + def run(self) -> None: + """ + Run the federated learning process using Flower simulation. + + Returns: + History: The history of the accuracies and losses during the training of each node + """ + # Increase the object store memory to the minimum allowed value or higher + ray_init_args = {"include_dashboard": False + , "object_store_memory": 78643200 + } + self.fed_dataset.eng = None + + history = fl.simulation.start_simulation( + client_fn=self.client_fn, + num_clients=self.num_clients, + config=fl.server.ServerConfig(self.num_rounds), + strategy=self.strategy.strategy_object, + ray_init_args=ray_init_args, + client_resources = self.client_resources + ) + + return history + diff --git a/build/lib/MEDfl/LearningManager/strategy.py b/build/lib/MEDfl/LearningManager/strategy.py new file mode 100644 index 0000000..038d8e6 --- /dev/null +++ b/build/lib/MEDfl/LearningManager/strategy.py @@ -0,0 +1,82 @@ + +from collections import OrderedDict +from typing import Dict, List, Optional, Tuple + +import flwr as fl +import numpy as np + +import optuna + + + + +class Strategy: + """ + A class representing a strategy for Federated Learning. + + Attributes: + name (str): The name of the strategy. Default is "FedAvg". + fraction_fit (float): Fraction of clients to use for training during each round. Default is 1.0. + fraction_evaluate (float): Fraction of clients to use for evaluation during each round. Default is 1.0. + min_fit_clients (int): Minimum number of clients to use for training during each round. Default is 2. + min_evaluate_clients (int): Minimum number of clients to use for evaluation during each round. Default is 2. + min_available_clients (int): Minimum number of available clients required to start a round. Default is 2. + initial_parameters (Optional[]): The initial parameters of the server model + Methods: + + """ + + def __init__( + self, + name: str = "FedAvg", + fraction_fit: float = 1.0, + fraction_evaluate: float = 1.0, + min_fit_clients: int = 2, + min_evaluate_clients: int = 2, + min_available_clients: int = 2, + initial_parameters = [], + evaluation_methode = "centralized" + ) -> None: + """ + Initialize a Strategy object with the specified parameters. + + Args: + name (str): The name of the strategy. Default is "FedAvg". + fraction_fit (float): Fraction of clients to use for training during each round. Default is 1.0. + fraction_evaluate (float): Fraction of clients to use for evaluation during each round. Default is 1.0. + min_fit_clients (int): Minimum number of clients to use for training during each round. Default is 2. + min_evaluate_clients (int): Minimum number of clients to use for evaluation during each round. Default is 2. + min_available_clients (int): Minimum number of available clients required to start a round. Default is 2. + initial_parameters (Optional[]): The initial parametres of the server model + evaluation_methode ( "centralized" | "distributed") + """ + self.fraction_fit = fraction_fit + self.fraction_evaluate = fraction_evaluate + self.min_fit_clients = min_fit_clients + self.min_evaluate_clients = min_evaluate_clients + self.min_available_clients = min_available_clients + self.initial_parameters = initial_parameters + self.evaluate_fn = None + self.name = name + + def optuna_fed_optimization(self, direction:str , hpo_rate:int , params_config): + self.study = optuna.create_study(direction=direction) + self.hpo_rate = hpo_rate + self.params_config = params_config + + + def create_strategy(self): + self.strategy_object = self.get_strategy_by_name()( + fraction_fit=self.fraction_fit, + fraction_evaluate=self.fraction_evaluate, + min_fit_clients=self.min_fit_clients, + min_evaluate_clients=self.min_evaluate_clients, + min_available_clients=self.min_available_clients, + initial_parameters=fl.common.ndarrays_to_parameters(self.initial_parameters), + evaluate_fn=self.evaluate_fn + ) + def get_strategy_by_name(self): + return eval(f"fl.server.strategy.{self.name}") + + + diff --git a/build/lib/MEDfl/LearningManager/utils.py b/build/lib/MEDfl/LearningManager/utils.py new file mode 100644 index 0000000..a5bd4dd --- /dev/null +++ b/build/lib/MEDfl/LearningManager/utils.py @@ -0,0 +1,331 @@ +#!/usr/bin/env python3 + +import pkg_resources +import torch +import yaml +from sklearn.metrics import * +from yaml.loader import SafeLoader + + +from MEDfl.NetManager.database_connector import DatabaseManager + +# from scripts.base import * +import json + + +import pandas as pd +import numpy as np + +import os +import configparser + +import subprocess +import ast + +from sqlalchemy import text + + +# Get the directory of the current script +current_directory = os.path.dirname(os.path.abspath(__file__)) + +# Load configuration from the config file +yaml_path = os.path.join(current_directory, 'params.yaml') + +with open(yaml_path) as g: + params = yaml.load(g, Loader=SafeLoader) + +# global_yaml_path = pkg_resources.resource_filename(__name__, "../../global_params.yaml") +# with open(global_yaml_path) as g: +# global_params = yaml.load(g, Loader=SafeLoader) + + +# Default path for the config file +DEFAULT_CONFIG_PATH = 'db_config.ini' + + +def load_db_config_dep(): + config = os.environ.get('MEDfl_DB_CONFIG') + + if config: + return ast.literal_eval(config) + else: + raise ValueError(f"MEDfl db config not found") + +# Function to allow users to set config path programmatically + + +def set_db_config_dep(config_path): + config = configparser.ConfigParser() + config.read(config_path) + if (config['sqllite']): + os.environ['MEDfl_DB_CONFIG'] = str(dict(config['sqllite'])) + else: + raise ValueError(f"mysql key not found in file '{config_path}'") + + + +def load_db_config(): + """Read a dictionary from an environment variable.""" + obj_str = os.getenv("MEDfl_DB_CONFIG") + if obj_str is not None: + return ast.literal_eval(obj_str) + else: + raise ValueError(f"Environment variable MEDfl_DB_CONFIG not found") + +# Function to allow users to set config path programmatically + + +def set_db_config(config_path): + obj = {"database" : config_path} + + """Store a dictionary as a string in an environment variable.""" + obj_str = str(obj) + os.environ['MEDfl_DB_CONFIG'] = obj_str + + + + + + +# Create databas + + +def create_MEDfl_db(): + script_path = os.path.join(os.path.dirname( + __file__), 'scripts', 'create_db.sh') + subprocess.run(['sh', script_path], check=True) + + +def custom_classification_report(y_true, y_pred_prob): + """ + Compute custom classification report metrics including accuracy, sensitivity, specificity, precision, NPV, + F1-score, false positive rate, and true positive rate. + + Args: + y_true (array-like): True labels. + y_pred (array-like): Predicted labels. + + Returns: + dict: A dictionary containing custom classification report metrics. + """ + y_pred = (y_pred_prob).round( + ) # Round absolute values of predicted probabilities to the nearest integer + + auc = roc_auc_score(y_true, y_pred_prob) # Calculate AUC + + tn, fp, fn, tp = confusion_matrix(y_true, y_pred , labels=[0, 1]).ravel() + + # Accuracy + denominator_acc = tp + tn + fp + fn + acc = (tp + tn) / denominator_acc if denominator_acc != 0 else 0.0 + + # Sensitivity/Recall + denominator_sen = tp + fn + sen = tp / denominator_sen if denominator_sen != 0 else 0.0 + + # Specificity + denominator_sp = tn + fp + sp = tn / denominator_sp if denominator_sp != 0 else 0.0 + + # PPV/Precision + denominator_ppv = tp + fp + ppv = tp / denominator_ppv if denominator_ppv != 0 else 0.0 + +# NPV + denominator_npv = tn + fn + npv = tn / denominator_npv if denominator_npv != 0 else 0.0 + + # F1 Score + denominator_f1 = sen + ppv + f1 = 2 * (sen * ppv) / denominator_f1 if denominator_f1 != 0 else 0.0 + + # False Positive Rate + denominator_fpr = fp + tn + fpr = fp / denominator_fpr if denominator_fpr != 0 else 0.0 + + # True Positive Rate + denominator_tpr = tp + fn + tpr = tp / denominator_tpr if denominator_tpr != 0 else 0.0 + + return { + "confusion matrix": {"TP": tp, "FP": fp, "FN": fn, "TN": tn}, + "Accuracy": round(acc, 3), + "Sensitivity/Recall": round(sen, 3), + "Specificity": round(sp, 3), + "PPV/Precision": round(ppv, 3), + "NPV": round(npv, 3), + "F1-score": round(f1, 3), + "False positive rate": round(fpr, 3), + "True positive rate": round(tpr, 3), + "auc": auc + } + + +def test(model, test_loader, device=torch.device("cpu")): + """ + Evaluate a model using a test loader and return a custom classification report. + + Args: + model (torch.nn.Module): PyTorch model to evaluate. + test_loader (torch.utils.data.DataLoader): DataLoader for the test dataset. + device (torch.device, optional): Device for model evaluation. Default is "cpu". + + Returns: + dict: A dictionary containing custom classification report metrics. + """ + + model.eval() + with torch.no_grad(): + X_test, y_test = test_loader.dataset[:][0].to( + device), test_loader.dataset[:][1].to(device) + y_hat_prob = torch.squeeze(model(X_test), 1).cpu() + + return custom_classification_report(y_test.cpu().numpy(), y_hat_prob.cpu().numpy()) + + +column_map = {"object": "VARCHAR(255)", "int64": "INT", "float64": "FLOAT"} + + +def empty_db(): + """ + Empty the database by deleting records from multiple tables and resetting auto-increment counters. + + Returns: + None + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + # my_eng.execute(text(f"DELETE FROM {'DataSets'}")) + my_eng.execute(text(f"DELETE FROM {'Nodes'}")) + my_eng.execute(text(f"DELETE FROM {'FedDatasets'}")) + my_eng.execute(text(f"DELETE FROM {'Networks'}")) + my_eng.execute(text(f"DELETE FROM {'FLsetup'}")) + + my_eng.execute(text(f"DELETE FROM {'FLpipeline'}")) + my_eng.execute(text(f"ALTER TABLE {'Nodes'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'Networks'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'FedDatasets'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'FLsetup'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'FLpipeline'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"DELETE FROM {'testResults'}")) + my_eng.execute(text(f"DROP TABLE IF EXISTS {'MasterDataset'}")) + my_eng.execute(text(f"DROP TABLE IF EXISTS {'DataSets'}")) + + +def get_pipeline_from_name(name): + """ + Get the pipeline ID from its name in the database. + + Args: + name (str): Name of the pipeline. + + Returns: + int: ID of the pipeline. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + NodeId = int( + pd.read_sql( + text(f"SELECT id FROM FLpipeline WHERE name = '{name}'"), my_eng + ).iloc[0, 0] + ) + return NodeId + + +def get_pipeline_confusion_matrix(pipeline_id): + """ + Get the global confusion matrix for a pipeline based on test results. + + Args: + pipeline_id (int): ID of the pipeline. + + Returns: + dict: A dictionary representing the global confusion matrix. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + data = pd.read_sql( + text( + f"SELECT confusionmatrix FROM testResults WHERE pipelineid = '{pipeline_id}'"), my_eng + ) + + # Convert the column of strings into a list of dictionaries representing confusion matrices + confusion_matrices = [ + json.loads(matrix.replace("'", "\"")) for matrix in data['confusionmatrix'] + ] + + # Initialize variables for global confusion matrix + global_TP = global_FP = global_FN = global_TN = 0 + + # Iterate through each dictionary and sum the corresponding values for each category + for matrix in confusion_matrices: + global_TP += matrix['TP'] + global_FP += matrix['FP'] + global_FN += matrix['FN'] + global_TN += matrix['TN'] + + # Create a global confusion matrix as a dictionary + global_confusion_matrix = { + 'TP': global_TP, + 'FP': global_FP, + 'FN': global_FN, + 'TN': global_TN + } + # Return the list of dictionaries representing confusion matrices + return global_confusion_matrix + + +def get_node_confusion_matrix(pipeline_id, node_name): + """ + Get the confusion matrix for a specific node in a pipeline based on test results. + + Args: + pipeline_id (int): ID of the pipeline. + node_name (str): Name of the node. + + Returns: + dict: A dictionary representing the confusion matrix for the specified node. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + data = pd.read_sql( + text( + f"SELECT confusionmatrix FROM testResults WHERE pipelineid = '{pipeline_id}' AND nodename = '{node_name}'"), my_eng + ) + + # Convert the column of strings into a list of dictionaries representing confusion matrices + confusion_matrices = [ + json.loads(matrix.replace("'", "\"")) for matrix in data['confusionmatrix'] + ] + + # Return the list of dictionaries representing confusion matrices + return confusion_matrices[0] + + +def get_pipeline_result(pipeline_id): + """ + Get the test results for a pipeline. + + Args: + pipeline_id (int): ID of the pipeline. + + Returns: + pandas.DataFrame: DataFrame containing test results for the specified pipeline. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + data = pd.read_sql( + text( + f"SELECT * FROM testResults WHERE pipelineid = '{pipeline_id}'"), my_eng + ) + return data diff --git a/build/lib/MEDfl/NetManager/__init__.py b/build/lib/MEDfl/NetManager/__init__.py new file mode 100644 index 0000000..c583635 --- /dev/null +++ b/build/lib/MEDfl/NetManager/__init__.py @@ -0,0 +1,10 @@ +# # MEDfl/NetworkManager/__init__.py + +# # Import modules from this package +# from .dataset import * +# from .flsetup import * +# from .net_helper import * +# from .net_manager_queries import * +# from .network import * +# from .node import * +# from .database_connector import * diff --git a/build/lib/MEDfl/NetManager/database_connector.py b/build/lib/MEDfl/NetManager/database_connector.py new file mode 100644 index 0000000..ad85ab1 --- /dev/null +++ b/build/lib/MEDfl/NetManager/database_connector.py @@ -0,0 +1,45 @@ +import os +import subprocess , sys +from sqlalchemy import create_engine +from configparser import ConfigParser + +class DatabaseManager: + def __init__(self): + from MEDfl.LearningManager.utils import load_db_config + db_config = load_db_config() + if db_config: + self.config = db_config + else: + self.config = None + self.engine = None + + def connect(self): + if not self.config: + raise ValueError("Database configuration not loaded. Use load_db_config() or set_config_path() first.") + # Assuming the SQLite database file path is provided in the config with the key 'database' + database_path = self.config['database'] + connection_string = f"sqlite:///{database_path}" + self.engine = create_engine(connection_string, pool_pre_ping=True) + + def get_connection(self): + if not self.engine: + self.connect() + return self.engine.connect() + + def create_MEDfl_db(self, path_to_csv): + # Get the directory of the current script + current_directory = os.path.dirname(__file__) + + # Define the path to the create_db.py script + create_db_script_path = os.path.join(current_directory, '..', 'scripts', 'create_db.py') + + # Execute the create_db.py script + print(sys.executable) + result = subprocess.run([sys.executable, create_db_script_path, path_to_csv], + capture_output=True, text=True) + + return + + def close(self): + if self.engine: + self.engine.dispose() diff --git a/build/lib/MEDfl/NetManager/dataset.py b/build/lib/MEDfl/NetManager/dataset.py new file mode 100644 index 0000000..2023495 --- /dev/null +++ b/build/lib/MEDfl/NetManager/dataset.py @@ -0,0 +1,92 @@ +import pandas as pd +from sqlalchemy import text + +from .net_helper import * +from .net_manager_queries import (DELETE_DATASET, INSERT_DATASET, + SELECT_ALL_DATASET_NAMES) +from MEDfl.NetManager.database_connector import DatabaseManager + +class DataSet: + def __init__(self, name: str, path: str, engine=None): + """ + Initialize a DataSet object. + + :param name: The name of the dataset. + :type name: str + :param path: The file path of the dataset CSV file. + :type path: str + """ + self.name = name + self.path = path + db_manager = DatabaseManager() + db_manager.connect() + self.engine = db_manager.get_connection() + + def validate(self): + """ + Validate name and path attributes. + + :raises TypeError: If name or path is not a string. + """ + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.path, str): + raise TypeError("path argument must be a string") + + def upload_dataset(self, NodeId=-1): + """ + Upload the dataset to the database. + + :param NodeId: The NodeId associated with the dataset. + :type NodeId: int + + Notes: + - Assumes the file at self.path is a valid CSV file. + - The dataset is uploaded to the 'DataSets' table in the database. + """ + + data_df = pd.read_csv(self.path) + nodeId = NodeId + columns = data_df.columns.tolist() + + + data_df = process_eicu(data_df) + for index, row in data_df.iterrows(): + query_1 = "INSERT INTO DataSets(DataSetName,nodeId," + "".join( + f"{x}," for x in columns + ) + query_2 = f" VALUES ('{self.name}',{nodeId}, " + "".join( + f"{is_str(data_df, row, x)}," for x in columns + ) + query = query_1[:-1] + ")" + query_2[:-1] + ")" + + self.engine.execute(text(query)) + + def delete_dataset(self): + """ + Delete the dataset from the database. + + Notes: + - Assumes the dataset name is unique in the 'DataSets' table. + """ + self.engine.execute(text(DELETE_DATASET), {"name": self.name}) + + def update_data(self): + """ + Update the data in the dataset. + + Not implemented yet. + """ + pass + + @staticmethod + def list_alldatasets(engine): + """ + List all dataset names from the 'DataSets' table. + + :returns: A DataFrame containing the names of all datasets in the 'DataSets' table. + :rtype: pd.DataFrame + """ + res = pd.read_sql(text(SELECT_ALL_DATASET_NAMES), engine) + return res diff --git a/build/lib/MEDfl/NetManager/flsetup.py b/build/lib/MEDfl/NetManager/flsetup.py new file mode 100644 index 0000000..10567ad --- /dev/null +++ b/build/lib/MEDfl/NetManager/flsetup.py @@ -0,0 +1,320 @@ +from datetime import datetime + + +from torch.utils.data import random_split, DataLoader, Dataset + +from MEDfl.LearningManager.federated_dataset import FederatedDataset +from .net_helper import * +from .net_manager_queries import * # Import the sql_queries module +from .network import Network + +from .node import Node + +from MEDfl.NetManager.database_connector import DatabaseManager + + +class FLsetup: + def __init__(self, name: str, description: str, network: Network): + """Initialize a Federated Learning (FL) setup. + + Args: + name (str): The name of the FL setup. + description (str): A description of the FL setup. + network (Network): An instance of the Network class representing the network architecture. + """ + self.name = name + self.description = description + self.network = network + self.column_name = None + self.auto = 1 if self.column_name is not None else 0 + self.validate() + self.fed_dataset = None + + db_manager = DatabaseManager() + db_manager.connect() + self.eng = db_manager.get_connection() + + + + def validate(self): + """Validate name, description, and network.""" + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.description, str): + raise TypeError("description argument must be a string") + + if not isinstance(self.network, Network): + raise TypeError( + "network argument must be a MEDfl.NetManager.Network " + ) + + def create(self): + """Create an FL setup.""" + creation_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + netid = get_netid_from_name(self.network.name) + self.eng.execute( + text(CREATE_FLSETUP_QUERY), + { + "name": self.name, + "description": self.description, + "creation_date": creation_date, + "net_id": netid, + "column_name": self.column_name, + }, + ) + self.id = get_flsetupid_from_name(self.name) + + def delete(self): + """Delete the FL setup.""" + if self.fed_dataset is not None: + self.fed_dataset.delete_Flsetup(FLsetupId=self.id) + self.eng.execute(text(DELETE_FLSETUP_QUERY), {"name": self.name}) + + @classmethod + def read_setup(cls, FLsetupId: int): + """Read the FL setup by FLsetupId. + + Args: + FLsetupId (int): The id of the FL setup to read. + + Returns: + FLsetup: An instance of the FLsetup class with the specified FLsetupId. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + res = pd.read_sql( + text(READ_SETUP_QUERY), my_eng, params={"flsetup_id": FLsetupId} + ).iloc[0] + + network_res = pd.read_sql( + text(READ_NETWORK_BY_ID_QUERY), + my_eng, + params={"net_id": int(res["NetId"])}, + ).iloc[0] + network = Network(network_res["NetName"]) + setattr(network, "id", res["NetId"]) + fl_setup = cls(res["name"], res["description"], network) + if res["column_name"] == str(None): + res["column_name"] = None + setattr(fl_setup, "column_name", res["column_name"]) + setattr(fl_setup, "id", res["FLsetupId"]) + + return fl_setup + + @staticmethod + def list_allsetups(): + """List all the FL setups. + + Returns: + DataFrame: A DataFrame containing information about all the FL setups. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + Flsetups = pd.read_sql(text(READ_ALL_SETUPS_QUERY), my_eng) + return Flsetups + + def create_nodes_from_master_dataset(self, params_dict: dict): + """Create nodes from the master dataset. + + Args: + params_dict (dict): A dictionary containing parameters for node creation. + - column_name (str): The name of the column in the MasterDataset used to create nodes. + - train_nodes (list): A list of node names that will be used for training. + - test_nodes (list): A list of node names that will be used for testing. + + Returns: + list: A list of Node instances created from the master dataset. + """ + assert "column_name" in params_dict.keys() + column_name, train_nodes, test_nodes = ( + params_dict["column_name"], + params_dict["train_nodes"], + params_dict["test_nodes"], + ) + self.column_name = column_name + self.auto = 1 + + # Update the Column name of the auto flSetup + query = f"UPDATE FLsetup SET column_name = '{column_name}' WHERE name = '{self.name}'" + self.eng.execute(text(query)) + + + # Add Network to DB + # self.network.create_network() + + netid = get_netid_from_name(self.network.name) + + assert self.network.mtable_exists == 1 + node_names = pd.read_sql( + text(READ_DISTINCT_NODES_QUERY.format(column_name)), self.eng + ) + + nodes = [Node(val[0], 1) for val in node_names.values.tolist()] + + used_nodes = [] + + for node in nodes: + if node.name in train_nodes: + node.train = 1 + node.create_node(netid) + used_nodes.append(node) + if node.name in test_nodes: + node.train =0 + node.create_node(netid) + used_nodes.append(node) + return used_nodes + + def create_dataloader_from_node( + self, + node: Node, + output, + fill_strategy="mean", fit_encode=[], to_drop=[], + train_batch_size: int = 32, + test_batch_size: int = 1, + split_frac: float = 0.2, + dataset: Dataset = None, + + ): + """Create DataLoader from a Node. + + Args: + node (Node): The node from which to create DataLoader. + train_batch_size (int): The batch size for training data. + test_batch_size (int): The batch size for test data. + split_frac (float): The fraction of data to be used for training. + dataset (Dataset): The dataset to use. If None, the method will read the dataset from the node. + + Returns: + DataLoader: The DataLoader instances for training and testing. + """ + if dataset is None: + if self.column_name is not None: + dataset = process_data_after_reading( + node.get_dataset(self.column_name), output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop + ) + else: + dataset = process_data_after_reading( + node.get_dataset(), output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop) + + dataset_size = len(dataset) + traindata_size = int(dataset_size * (1 - split_frac)) + traindata, testdata = random_split( + dataset, [traindata_size, dataset_size - traindata_size] + ) + trainloader, testloader = DataLoader( + traindata, batch_size=train_batch_size + ), DataLoader(testdata, batch_size=test_batch_size) + return trainloader, testloader + + def create_federated_dataset( + self, output, fill_strategy="mean", fit_encode=[], to_drop=[], val_frac=0.1, test_frac=0.2 + ) -> FederatedDataset: + """Create a federated dataset. + + Args: + output (string): the output feature of the dataset + val_frac (float): The fraction of data to be used for validation. + test_frac (float): The fraction of data to be used for testing. + + Returns: + FederatedDataset: The FederatedDataset instance containing train, validation, and test data. + """ + + if not self.column_name: + to_drop.extend(["DataSetName" , "NodeId" , "DataSetId"]) + else : + to_drop.extend(["PatientId"]) + + netid = self.network.id + train_nodes = pd.read_sql( + text( + f"SELECT Nodes.NodeName FROM Nodes WHERE Nodes.NetId = {netid} AND Nodes.train = 1 " + ), + self.eng, + ) + test_nodes = pd.read_sql( + text( + f"SELECT Nodes.NodeName FROM Nodes WHERE Nodes.NetId = {netid} AND Nodes.train = 0 " + ), + self.eng, + ) + + train_nodes = [ + Node(val[0], 1, test_frac) for val in train_nodes.values.tolist() + ] + test_nodes = [Node(val[0], 0) for val in test_nodes.values.tolist()] + + trainloaders, valloaders, testloaders = [], [], [] + # if len(test_nodes) == 0: + # raise "test node empty" + if test_nodes is None: + _, testloader = self.create_dataloader_from_node( + train_nodes[0], output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop) + testloaders.append(testloader) + else: + for train_node in train_nodes: + train_valloader, testloader = self.create_dataloader_from_node( + train_node, output, fill_strategy=fill_strategy, + fit_encode=fit_encode, to_drop=to_drop,) + trainloader, valloader = self.create_dataloader_from_node( + train_node, + output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop, + test_batch_size=32, + split_frac=val_frac, + dataset=train_valloader.dataset, + ) + trainloaders.append(trainloader) + valloaders.append(valloader) + testloaders.append(testloader) + + for test_node in test_nodes: + _, testloader = self.create_dataloader_from_node( + test_node, output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop, split_frac=1.0 + ) + testloaders.append(testloader) + train_nodes_names = [node.name for node in train_nodes] + test_nodes_names = train_nodes_names + [ + node.name for node in test_nodes + ] + + # test_nodes_names = [ + # node.name for node in test_nodes + # ] + + # Add FlSetup on to the DataBase + # self.create() + + # self.network.update_network(FLsetupId=self.id) + fed_dataset = FederatedDataset( + self.name + "_Feddataset", + train_nodes_names, + test_nodes_names, + trainloaders, + valloaders, + testloaders, + ) + self.fed_dataset = fed_dataset + self.fed_dataset.create(self.id) + return self.fed_dataset + + + + + def get_flDataSet(self): + """ + Retrieve the federated dataset associated with the FL setup using the FL setup's name. + + Returns: + pandas.DataFrame: DataFrame containing the federated dataset information. + """ + return pd.read_sql( + text( + f"SELECT * FROM FedDatasets WHERE FLsetupId = {get_flsetupid_from_name(self.name)}" + ), + self.eng, + ) diff --git a/build/lib/MEDfl/NetManager/net_helper.py b/build/lib/MEDfl/NetManager/net_helper.py new file mode 100644 index 0000000..2d9aff0 --- /dev/null +++ b/build/lib/MEDfl/NetManager/net_helper.py @@ -0,0 +1,254 @@ +from sklearn.preprocessing import LabelEncoder +from sklearn.impute import SimpleImputer + +from sqlalchemy import text + +import torch +import pandas as pd +from torch.utils.data import TensorDataset +import numpy as np + +from MEDfl.NetManager.database_connector import DatabaseManager + + +def is_str(data_df, row, x): + """ + Check if a column in a DataFrame is of type 'object' and convert the value accordingly. + + Args: + data_df (pandas.DataFrame): DataFrame containing the data. + row (pandas.Series): Data row. + x (str): Column name. + + Returns: + str or float: Processed value based on the column type. + """ + if data_df[x].dtype == "object": + x = f"'{row[x]}'" + else: + x = row[x] + return x + + +def process_eicu(data_df): + """ + Process eICU data by filling missing values with mean and replacing NaNs with 'Unknown'. + + Args: + data_df (pandas.DataFrame): Input data. + + Returns: + pandas.DataFrame: Processed data. + """ + # Identify numeric and non-numeric columns + numeric_columns = data_df.select_dtypes(include=[np.number]).columns + non_numeric_columns = data_df.select_dtypes(exclude=[np.number]).columns + + # Fill NaN in numeric columns with mean + data_df[numeric_columns] = data_df[numeric_columns].fillna( + data_df[numeric_columns].mean()) + + # Fill NaN in non-numeric columns with 'Unknown' + data_df[non_numeric_columns] = data_df[non_numeric_columns].fillna( + 'Unknown') + + try: + data_df = data_df.reset_index(drop=True) + except: + pass + + return data_df + + +# remove indiserd columns after reading from the DB +def process_data_after_reading(data, output, fill_strategy="mean", fit_encode=[], to_drop=[]): + """ + Process data after reading from the database, including encoding, dropping columns, and creating a PyTorch TensorDataset. + + Args: + data (pandas.DataFrame): Input data. + output (str): Output column name. + fill_strategy (str, optional): Imputation strategy for missing values. Default is "mean". + fit_encode (list, optional): List of columns to be label-encoded. Default is an empty list. + to_drop (list, optional): List of columns to be dropped from the DataFrame. Default is an empty list. + + Returns: + torch.utils.data.TensorDataset: Processed data as a PyTorch TensorDataset. + """ + + # Check if there is a DataSet assigned to the node + if (len(data) == 0): + raise "Node doesn't Have dataSet" + + encoder = LabelEncoder() + # En Code some columns + for s in fit_encode: + try: + data[s] = encoder.fit_transform(data[s]) + except: + raise print(s) + + # The output of the DATA + y = data[output] + + X = data + + # remove indisered columns when reading the dataframe from the DB + for column in to_drop: + try: + X = X.drop( + [column], axis=1 + ) + except Exception as e: + raise e + + # Get the DATAset Features + features = [col for col in X.columns if col != output] + + # Impute missing values using the mean strategy + try: + imputer = SimpleImputer(strategy=fill_strategy) + X[features] = imputer.fit_transform(X[features]) + except: + print() + + X = torch.tensor(X.values, dtype=torch.float32) + y = torch.tensor(y.values, dtype=torch.float32) + data = TensorDataset(X, y) + + return data + + +def get_nodeid_from_name(name): + """ + Get the NodeId from the Nodes table based on the NodeName. + + Args: + name (str): Node name. + + Returns: + int or None: NodeId or None if not found. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + result_proxy = my_eng.execute(f"SELECT NodeId FROM Nodes WHERE NodeName = '{name}'") + NodeId = int(result_proxy.fetchone()[0]) + return NodeId + + +def get_netid_from_name(name): + """ + Get the Network Id from the Networks table based on the NetName. + + Args: + name (str): Network name. + + Returns: + int or None: NetId or None if not found. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + try: + result_proxy = my_eng.execute(f"SELECT NetId FROM Networks WHERE NetName = '{name}'") + NetId = int(result_proxy.fetchone()[0]) + except: + NetId = None + return NetId + + +def get_flsetupid_from_name(name): + """ + Get the FLsetupId from the FLsetup table based on the FL setup name. + + Args: + name (str): FL setup name. + + Returns: + int or None: FLsetupId or None if not found. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + try: + + result_proxy = my_eng.execute(f"SELECT FLsetupId FROM FLsetup WHERE name = '{name}'") + id = int(result_proxy.fetchone()[0]) + + except: + id = None + return id + + +def get_flpipeline_from_name(name): + """ + Get the FLpipeline Id from the FLpipeline table based on the FL pipeline name. + + Args: + name (str): FL pipeline name. + + Returns: + int or None: FLpipelineId or None if not found. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + try: + + result_proxy = my_eng.execute(f"SELECT id FROM FLpipeline WHERE name = '{name}'") + id = int(result_proxy.fetchone()[0]) + except: + id = None + return id + + +def get_feddataset_id_from_name(name): + """ + Get the Federated dataset Id from the FedDatasets table based on the federated dataset name. + + Args: + name (str): Federated dataset name. + + Returns: + int or None: FedId or None if not found. + """ + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + try: + + result_proxy = my_eng.execute(f"SELECT FedId FROM FedDatasets WHERE name = '{name}'") + id = int(result_proxy.fetchone()[0]) + except: + id = None + return id + + +def master_table_exists(): + """ + Check if the MasterDataset table exists in the database. + + Returns: + bool: True if the table exists, False otherwise. + """ + try: + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + # SQLite-specific query to check if table exists + sql_query = text("SELECT name FROM sqlite_master WHERE type='table' AND name='MasterDataset'") + result = my_eng.execute(sql_query) + exists = result.fetchone() is not None + return exists + + except Exception as e: + print(f"Error checking MasterDataset table existence: {e}") + return False + diff --git a/build/lib/MEDfl/NetManager/net_manager_queries.py b/build/lib/MEDfl/NetManager/net_manager_queries.py new file mode 100644 index 0000000..dd83969 --- /dev/null +++ b/build/lib/MEDfl/NetManager/net_manager_queries.py @@ -0,0 +1,142 @@ +from .net_helper import is_str + +INSERT_DATASET = """ + INSERT INTO DataSets(DataSetName, NodeId, {columns}) + VALUES (:name, :NodeId, {values}) +""" +DELETE_DATASET = """ + DELETE FROM DataSets WHERE DataSetName = :name +""" + +SELECT_ALL_DATASET_NAMES = """ + SELECT DISTINCT DataSetName,NodeId FROM DataSets +""" + +SELECT_DATASET_BY_NAME = """ + SELECT * FROM DataSets WHERE DataSetName = :name +""" + +# node queries +# sql_queries.py + +INSERT_NODE_QUERY = ( + "INSERT INTO Nodes(NodeName,NetId,train) VALUES ('{}',{}, {})" +) +DELETE_NODE_QUERY = "DELETE FROM Nodes WHERE NodeName = '{}'" +SELECT_MASTER_COLUMNS_QUERY = "SELECT * FROM MasterDataset LIMIT 1" +SELECT_DATASET_BY_COLUMN_QUERY = "SELECT * FROM MasterDataset WHERE {} = '{}'" +SELECT_DATASET_BY_NODE_ID_QUERY = "SELECT * FROM DataSets WHERE NodeId = {}" + +SELECT_ALL_DATASETS_QUERY = "SELECT DISTINCT DataSetName,NodeName FROM DataSets,Nodes WHERE Nodes.NodeName = '{}' and Nodes.NodeId = DataSets.NodeId" +SELECT_ALL_NODES_QUERY = "SELECT * FROM Nodes" + + +# SQL query to insert a new network +INSERT_NETWORK_QUERY = "INSERT INTO Networks(NetName) VALUES (:name)" + +# SQL query to delete a network +DELETE_NETWORK_QUERY = "DELETE FROM Networks WHERE NetName = '{name}'" + +# SQL query to delete a network +GET_NETWORK_QUERY = "SELECT * FROM Networks WHERE NetName = '{name}'" + + +# SQL query to update a network +UPDATE_NETWORK_QUERY = ( + "UPDATE Networks SET FLsetupId = {FLsetupId} WHERE NetId = {id}" +) + +# SQL query to retrieve all nodes for a network +LIST_ALL_NODES_QUERY = """ +SELECT Nodes.NodeName, Networks.NetName +FROM Nodes +JOIN Networks ON Networks.NetId = Nodes.NetId +WHERE Networks.NetName = :name +""" + +# SQL query to create the MasterDataset table (SQLite-compatible) +CREATE_MASTER_DATASET_TABLE_QUERY = """ +CREATE TABLE IF NOT EXISTS MasterDataset ( + PatientId INTEGER PRIMARY KEY AUTOINCREMENT, + {} +); +""" + + +# SQL query to create the datasets table (SQLite-compatible) +CREATE_DATASETS_TABLE_QUERY = """ +CREATE TABLE IF NOT EXISTS Datasets ( + DataSetId INTEGER PRIMARY KEY AUTOINCREMENT, + DataSetName VARCHAR(255), + NodeId INT, + {} +); +""" + + + +# SQL query to insert dataset values +INSERT_DATASET_VALUES_QUERY = "INSERT INTO MasterDataset({columns}, NodeId) VALUES ('{name}', {nodeId}, {values})" + + +# FL setup_queries +# sql_queries.py + +CREATE_FLSETUP_QUERY = """ + INSERT INTO FLsetup (name, description, creation_date, NetId, column_name) + VALUES (:name, :description, :creation_date, :net_id, :column_name) +""" + +DELETE_FLSETUP_QUERY = """ + DELETE FROM FLsetup + WHERE name = :name +""" + +UPDATE_FLSETUP_QUERY = UPDATE_NETWORK_QUERY = ( + "UPDATE FLsetup SET column_name ='{column_name}' WHERE name ='{FLsetupName}'" +) + + +READ_SETUP_QUERY = """ + SELECT * FROM FLsetup + WHERE FLsetupId = :flsetup_id +""" + +READ_ALL_SETUPS_QUERY = """ + SELECT * FROM FLsetup +""" + +READ_NETWORK_BY_ID_QUERY = """ + SELECT * FROM Networks + WHERE NetId = :net_id +""" + +READ_DISTINCT_NODES_QUERY = """ +SELECT DISTINCT {} FROM MasterDataset +""" + + +# FederatedDataset Queries +INSERT_FLDATASET_QUERY = ( + "INSERT INTO FedDatasets(name, FLsetupId) VALUES (:name, :FLsetupId)" +) +DELETE_FLDATASET_BY_SETUP_AND_PIPELINE_QUERY = "DELETE FROM FedDatasets WHERE FLsetupId = :FLsetupId AND FLpipeId = :FLpipeId" + + +UPDATE_FLDATASET_QUERY = ( + "UPDATE FedDatasets SET FLpipeId = :FLpipeId WHERE FedId = :FedId" +) +SELECT_FLDATASET_BY_NAME_QUERY = "SELECT * FROM FedDatasets WHERE name = :name" + +CREATE_FLPIPELINE_QUERY = """ +INSERT INTO FLpipeline (name, description, creation_date, results) +VALUES ('{name}', '{description}', '{creation_date}', '{result}') +""" +DELETE_FLPIPELINE_QUERY = "DELETE FROM FLpipeline WHERE name = '{name}'" + +SELECT_FLPIPELINE_QUERY = "SELECT FROM FLpipeline WHERE name = '{name}'" + +CREATE_TEST_RESULTS_QUERY = """ +INSERT INTO testResults (pipelineid, nodename, confusionmatrix, accuracy , sensivity, ppv , npv , f1score , fpr , tpr ) +VALUES ('{pipelineId}', '{nodeName}', '{confusion_matrix}', '{accuracy}' , '{sensivity}' , '{ppv}' , '{npv}' , '{f1score}' , '{fpr}' , '{tpr}') +""" diff --git a/build/lib/MEDfl/NetManager/network.py b/build/lib/MEDfl/NetManager/network.py new file mode 100644 index 0000000..65cac7c --- /dev/null +++ b/build/lib/MEDfl/NetManager/network.py @@ -0,0 +1,194 @@ +# src/MEDfl/NetManager/network.py + +from MEDfl.LearningManager.utils import * +from .net_helper import * +from .net_manager_queries import (CREATE_MASTER_DATASET_TABLE_QUERY, + CREATE_DATASETS_TABLE_QUERY, + DELETE_NETWORK_QUERY, + INSERT_NETWORK_QUERY, LIST_ALL_NODES_QUERY, + UPDATE_NETWORK_QUERY, GET_NETWORK_QUERY) +from .node import Node +import pandas as pd +from MEDfl.LearningManager.utils import params + +from sqlalchemy import text +from sqlalchemy.exc import SQLAlchemyError + +class Network: + """ + A class representing a network. + + Attributes: + name (str): The name of the network. + mtable_exists (int): An integer flag indicating whether the MasterDataset table exists (1) or not (0). + """ + + def __init__(self, name: str = ""): + """ + Initialize a Network instance. + + Parameters: + name (str): The name of the network. + """ + self.name = name + self.mtable_exists = int(master_table_exists()) + self.validate() + + db_manager = DatabaseManager() + db_manager.connect() + self.eng = db_manager.get_connection() + + def validate(self): + """Validate name""" + + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + def create_network(self): + """Create a new network in the database.""" + try: + print(self.name) + self.eng.execute(text(INSERT_NETWORK_QUERY), {"name": self.name}) + self.id = self.get_netid_from_name(self.name) + except SQLAlchemyError as e: + print(f"Error creating network: {e}") + + def use_network(self, network_name: str): + """Use a network in the database. + + Parameters: + network_name (str): The name of the network to use. + + Returns: + Network or None: An instance of the Network class if the network exists, else None. + """ + try: + network = pd.read_sql( + text(GET_NETWORK_QUERY), + self.eng, + params={"name": network_name} + ) + if not network.empty: + self.name = network.iloc[0]['NetName'] + self.id = network.iloc[0]['NetId'] + self.mtable_exists = int(master_table_exists()) + self.validate() + return self + else: + return None + except SQLAlchemyError as e: + print(f"Error using network: {e}") + return None + + def delete_network(self): + """Delete the network from the database.""" + try: + self.eng.execute(text(DELETE_NETWORK_QUERY), {"name": self.name}) + except SQLAlchemyError as e: + print(f"Error deleting network: {e}") + + def update_network(self, FLsetupId: int): + """Update the network's FLsetupId in the database. + + Parameters: + FLsetupId (int): The FLsetupId to update. + """ + try: + self.eng.execute( + text(UPDATE_NETWORK_QUERY), + {"FLsetupId": FLsetupId, "id": self.id} + ) + except SQLAlchemyError as e: + print(f"Error updating network: {e}") + + def add_node(self, node: Node): + """Add a node to the network. + + Parameters: + node (Node): The node to add. + """ + node.create_node(self.id) + + def list_allnodes(self): + """List all nodes in the network. + + Returns: + DataFrame: A DataFrame containing information about all nodes in the network. + """ + try: + query = text(LIST_ALL_NODES_QUERY) + result_proxy = self.eng.execute(query, name=self.name) + result_df = pd.DataFrame(result_proxy.fetchall(), columns=result_proxy.keys()) + return result_df + except SQLAlchemyError as e: + print(f"Error listing all nodes: {e}") + return pd.DataFrame() + + def create_master_dataset(self, path_to_csv: str = params['path_to_master_csv']): + """ + Create the MasterDataset table and insert dataset values. + + :param path_to_csv: Path to the CSV file containing the dataset. + """ + try: + print(path_to_csv) + data_df = pd.read_csv(path_to_csv) + + if self.mtable_exists != 1: + columns = data_df.columns.tolist() + columns_str = ",\n".join( + [ + f"{col} {column_map[str(data_df[col].dtype)]}" + for col in columns + ] + ) + self.eng.execute( + text(CREATE_MASTER_DATASET_TABLE_QUERY.format(columns_str)) + ) + self.eng.execute(text(CREATE_DATASETS_TABLE_QUERY.format(columns_str))) + + # Process data + data_df = process_eicu(data_df) + + # Insert data in batches + batch_size = 1000 # Adjust as needed + for start_idx in range(0, len(data_df), batch_size): + batch_data = data_df.iloc[start_idx:start_idx + batch_size] + insert_query = f"INSERT INTO MasterDataset ({', '.join(columns)}) VALUES ({', '.join([':' + col for col in columns])})" + data_to_insert = batch_data.to_dict(orient='records') + self.eng.execute(text(insert_query), data_to_insert) + + self.mtable_exists = 1 + except SQLAlchemyError as e: + print(f"Error creating master dataset: {e}") + + @staticmethod + def list_allnetworks(): + """List all networks in the database. + + Returns: + DataFrame: A DataFrame containing information about all networks in the database. + """ + try: + db_manager = DatabaseManager() + db_manager.connect() + my_eng = db_manager.get_connection() + + result_proxy = my_eng.execute("SELECT * FROM Networks") + result = result_proxy.fetchall() + return pd.DataFrame(result, columns=result_proxy.keys()) + except SQLAlchemyError as e: + print(f"Error listing all networks: {e}") + return pd.DataFrame() + + def get_netid_from_name(self, name): + """Get network ID from network name.""" + try: + result = self.eng.execute(text("SELECT NetId FROM Networks WHERE NetName = :name"), {"name": name}).fetchone() + if result: + return result[0] + else: + return None + except SQLAlchemyError as e: + print(f"Error fetching network ID: {e}") + return None diff --git a/build/lib/MEDfl/NetManager/node.py b/build/lib/MEDfl/NetManager/node.py new file mode 100644 index 0000000..9029d69 --- /dev/null +++ b/build/lib/MEDfl/NetManager/node.py @@ -0,0 +1,184 @@ +import pandas as pd + +from .net_helper import * +from .net_manager_queries import * +from MEDfl.LearningManager.utils import params +from MEDfl.NetManager.database_connector import DatabaseManager + +from sqlalchemy import text, exc + + +class Node: + """ + A class representing a node in the network. + + Attributes: + name (str): The name of the node. + train (int): An integer flag representing whether the node is used for training (1) or testing (0). + test_fraction (float, optional): The fraction of data used for testing when train=1. Default is 0.2. + """ + + def __init__( + self, name: str, train: int, test_fraction: float = 0.2, engine=None + ): + """ + Initialize a Node instance. + + Parameters: + name (str): The name of the node. + train (int): An integer flag representing whether the node is used for training (1) or testing (0). + test_fraction (float, optional): The fraction of data used for testing when train=1. Default is 0.2. + """ + self.name = name + self.train = train + self.test_fraction = 1.0 if self.train == 0 else test_fraction + + + db_manager = DatabaseManager() ; + db_manager.connect() ; + self.engine = db_manager.get_connection() + + def validate(self): + """Validate name, train, test_fraction""" + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.train, int): + raise TypeError("train argument must be an int") + + if not isinstance(self.test_fraction, float): + raise TypeError("test_fraction argument must be a float") + + def create_node(self, NetId: int): + """Create a node in the database. + Parameters: + NetId (int): The ID of the network to which the node belongs. + + Returns: + None + """ + self.engine.execute( + text(INSERT_NODE_QUERY.format(self.name, NetId, self.train)) + ) + + def delete_node(self): + """Delete the node from the database.""" + self.engine.execute(text(DELETE_NODE_QUERY.format(self.name))) + + def check_dataset_compatibility(self, data_df): + """Check if the dataset is compatible with the master dataset. + Parameters: + data_df (DataFrame): The dataset to check. + + Returns: + None + """ + if master_table_exists() != 1: + print("MasterDataset doesn't exist") + else: + columns = data_df.columns.tolist() + + # get master_dataset columns + result_proxy = self.engine.execute(SELECT_MASTER_COLUMNS_QUERY) + master_table_columns = result_proxy.keys() + + + assert [x == y for x, y in zip(master_table_columns, columns)] + + def update_node(self): + """Update the node information (not implemented).""" + pass + + def get_dataset(self, column_name: str = None): + """Get the dataset for the node based on the given column name. + Parameters: + column_name (str, optional): The column name to filter the dataset. Default is None. + + Returns: + DataFrame: The dataset associated with the node. + """ + NodeId = get_nodeid_from_name(self.name) + if column_name is not None: + query = text(SELECT_DATASET_BY_COLUMN_QUERY.format(column_name, self.name)) + else: + query = text(SELECT_DATASET_BY_NODE_ID_QUERY.format(NodeId)) + + result_proxy = self.engine.execute(query) + node_dataset = pd.DataFrame(result_proxy.fetchall(), columns=result_proxy.keys()) + + return node_dataset + + def upload_dataset(self, dataset_name: str, path_to_csv: str = params['path_to_test_csv']): + """Upload the dataset to the database for the node. + + Parameters: + dataset_name (str): The name of the dataset. + path_to_csv (str, optional): Path to the CSV file containing the dataset. Default is the path in params. + + Returns: + None + """ + try: + data_df = pd.read_csv(path_to_csv) + nodeId = get_nodeid_from_name(self.name) + columns = data_df.columns.tolist() + self.check_dataset_compatibility(data_df) + + data_df = process_eicu(data_df) + + # Insert data in batches + batch_size = 1000 # Adjust as needed + for start_idx in range(0, len(data_df), batch_size): + batch_data = data_df.iloc[start_idx:start_idx + batch_size] + insert_query = f"INSERT INTO Datasets (DataSetName, NodeId, {', '.join(columns)}) VALUES (:dataset_name, :nodeId, {', '.join([':' + col for col in columns])})" + data_to_insert = batch_data.to_dict(orient='records') + params = [{"dataset_name": dataset_name, "nodeId": nodeId, **row} for row in data_to_insert] + self.engine.execute(text(insert_query), params) + except exc.SQLAlchemyError as e: + print(f"Error uploading dataset: {e}") + + def assign_dataset(self, dataset_name:str): + """Assigning existing dataSet to node + Parameters: + dataset_name (str): The name of the dataset to assign. + + Returns: + None + """ + + nodeId = get_nodeid_from_name(self.name) + query = f"UPDATE DataSets SET nodeId = {nodeId} WHERE DataSetName = '{dataset_name}'" + self.engine.execute(text(query)) + + def unassign_dataset(self, dataset_name:str): + """unssigning existing dataSet to node + Parameters: + dataset_name (str): The name of the dataset to assign. + + Returns: + None + """ + + query = f"UPDATE DataSets SET nodeId = {-1} WHERE DataSetName = '{dataset_name}'" + self.engine.execute(text(query)) + + def list_alldatasets(self): + """List all datasets associated with the node. + Returns: + DataFrame: A DataFrame containing information about all datasets associated with the node. + + """ + return pd.read_sql( + text(SELECT_ALL_DATASETS_QUERY.format(self.name)), my_eng + ) + + @staticmethod + def list_allnodes(): + """List all nodes in the database. + Returns: + DataFrame: A DataFrame containing information about all nodes in the database. + + """ + query = text(SELECT_ALL_NODES_QUERY) + res = pd.read_sql(query, my_eng) + return res diff --git a/build/lib/MEDfl/__init__.py b/build/lib/MEDfl/__init__.py new file mode 100644 index 0000000..9763e3e --- /dev/null +++ b/build/lib/MEDfl/__init__.py @@ -0,0 +1,4 @@ +from .LearningManager import * +from .NetManager import * +from .scripts import * +from .rw import * \ No newline at end of file diff --git a/build/lib/MEDfl/rw/__init__.py b/build/lib/MEDfl/rw/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib/MEDfl/rw/client.py b/build/lib/MEDfl/rw/client.py new file mode 100644 index 0000000..4fed968 --- /dev/null +++ b/build/lib/MEDfl/rw/client.py @@ -0,0 +1,421 @@ +# File: client.py + +import argparse +import pandas as pd +import flwr as fl +import torch +import torch.nn as nn +import torch.optim as optim +from torch.utils.data import TensorDataset, DataLoader +from sklearn.metrics import accuracy_score, roc_auc_score +from sklearn.model_selection import train_test_split +from MEDfl.rw.model import Net # votre définition de modèle +import socket +import platform +import psutil +import shutil +import numpy as np + +try: + import GPUtil +except ImportError: + GPUtil = None + + +class DPConfig: + """ + Configuration for differential privacy. + + Attributes: + noise_multiplier (float): Noise multiplier for DP. + max_grad_norm (float): Maximum gradient norm for clipping. + batch_size (int): Batch size for training. + secure_rng (bool): Use a secure random generator. + """ + + def __init__( + self, + noise_multiplier=1.0, + max_grad_norm=1.0, + batch_size=32, + secure_rng=False, + ): + self.noise_multiplier = noise_multiplier + self.max_grad_norm = max_grad_norm + self.batch_size = batch_size + self.secure_rng = secure_rng + + +class FlowerClient(fl.client.NumPyClient): + def __init__( + self, + server_address, + data_path="data/data.csv", + dp_config=None, + # NEW (optional client overrides; do NOT remove old args) + val_frac=None, + test_frac=None, + id_col=None, + test_ids=None, + seed=42, + ): + self.server_address = server_address + self.dp_config = dp_config + self.client_val_frac = val_frac + self.client_test_frac = test_frac + self.id_col = id_col + self.test_ids = test_ids + self.seed = seed + + # Load the CSV once; actual column selection happens on first fit using server config + self._df = pd.read_csv(data_path) + + # Defaults used only for get_properties BEFORE first fit (last column target) + self.feature_names = self._df.columns[:-1].tolist() + self.target_name = self._df.columns[-1] + self.label_counts = self._df[self.target_name].value_counts().to_dict() + self.classes = sorted(self.label_counts.keys()) + + # Tensors for metrics before first fit (fallback to all-but-last as features) + X_default = self._df.iloc[:, :-1].values + y_default = self._df.iloc[:, -1].values + self.X_tensor = torch.tensor(X_default, dtype=torch.float32) + self.y_tensor = torch.tensor(y_default, dtype=torch.float32) + + # Placeholders; we lazily build loaders/model on the first fit when we see server config + self.train_loader = None + self.val_loader = None + self.test_loader = None + + self.model = None + self.criterion = nn.BCEWithLogitsLoss() + self.optimizer = None + + # Effective settings (filled at first fit) + self.effective_features = self.feature_names[:] + self.effective_target = self.target_name + self.effective_val_frac = float(self.client_val_frac) if self.client_val_frac is not None else 0.0 + self.effective_test_frac = float(self.client_test_frac) if self.client_test_frac is not None else 0.0 + + self._initialized = False + self._dp_attached = False # to avoid wrapping twice + + # ---------- helpers + + def _mk_loader(self, X, y, batch_size, shuffle): + x_t = torch.tensor(X, dtype=torch.float32) + y_t = torch.tensor(y, dtype=torch.float32) + return DataLoader(TensorDataset(x_t, y_t), batch_size=batch_size, shuffle=shuffle) + + def _lazy_init_from_server_config(self, config): + """ + Build model and (train, val, test) loaders once, using: + - Server-enforced schema: config['features'] (comma-separated), config['target'] + - Split fractions: client overrides win; else use server's val_fraction/test_fraction + - NEW: if config['test_ids'] is set (per-client from strategy), use ID-based split + """ + # ---------- schema from server (enforced if provided) + srv_features = (config.get("features") or "").strip() + srv_target = (config.get("target") or "").strip() + print(f"[Client] Initializing with server schema: features='{srv_features}', target='{srv_target}'") + + if srv_target: + if srv_target not in self._df.columns: + raise ValueError(f"Server-specified target '{srv_target}' not in CSV columns {list(self._df.columns)}") + target_col = srv_target + else: + target_col = self._df.columns[-1] # fallback (keeps backward compatibility) + + if srv_features: + feat_cols = [c.strip() for c in srv_features.split(",") if c.strip()] + missing = [c for c in feat_cols if c not in self._df.columns] + if missing: + raise ValueError(f"Server-specified feature(s) not found in CSV: {missing}") + else: + feat_cols = [c for c in self._df.columns if c != target_col] + + # ---------- fractions: client overrides > server defaults > fallback (0.10/0.10) + srv_val = config.get("val_fraction", None) + srv_test = config.get("test_fraction", None) + 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) + 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) + + if not (0.0 <= val_frac < 1.0): + raise ValueError(f"Invalid val_frac: {val_frac} (must be 0 <= val_frac < 1)") + + # ---------- NEW: adopt test_ids / id_col from server config if provided + if (not self.test_ids or not self.test_ids.strip()) and config.get("test_ids"): + + # strategy (per_client) can inject test_ids as list or CSV; normalize to CSV string + ti = config.get("test_ids") + if isinstance(ti, (list, tuple, set)): + self.test_ids = ",".join(str(x) for x in ti) + else: + self.test_ids = str(ti) + + print(f"[Client] Using server-provided test_ids: {self.test_ids}") + + if (not self.id_col) and config.get("id_col"): + self.id_col = str(config.get("id_col")) + + # ---------- extract arrays with the enforced schema + X_all = self._df[feat_cols].values + y_all = self._df[target_col].values + + # Keep tensors for global metrics logging (same behavior as before) + self.X_tensor = torch.tensor(X_all, dtype=torch.float32) + self.y_tensor = torch.tensor(y_all, dtype=torch.float32) + + # ---------- split + if self.test_ids and self.test_ids.strip(): # ID-based mode (unchanged behavior, now also supports server-provided IDs) + print("[Client] Using ID-based test selection") + test_ids_list = [i.strip() for i in self.test_ids.split(',') if i.strip()] + + if self.id_col and self.id_col in self._df.columns: + id_series = self._df[self.id_col] + # Align types between id_series and test_ids_list + if np.issubdtype(id_series.dtype, np.number): + test_ids_list = [int(i) for i in test_ids_list] + else: + test_ids_list = [str(i) for i in test_ids_list] + + else: + print(f"[Client] Falling back to line numbers (index) as IDs since id_col='{self.id_col}' is invalid or not provided") + id_series = self._df.index + try: + test_ids_list = [int(i) for i in test_ids_list] + except ValueError: + raise ValueError("Test IDs must be integers when using line numbers as IDs") + + test_mask = id_series.isin(test_ids_list) + if not test_mask.any(): + print("[Client] Warning: No matching IDs found for test set; it will be empty") + + X_test = X_all[test_mask] + y_test = y_all[test_mask] + X_trval = X_all[~test_mask] + y_trval = y_all[~test_mask] + + actual_test_frac = len(y_test) / len(y_all) if len(y_all) > 0 else 0.0 + if val_frac + actual_test_frac >= 1.0: + raise ValueError(f"Validation fraction {val_frac} + actual test fraction {actual_test_frac} >= 1.0") + + self.effective_test_frac = actual_test_frac # For logging + + else: # Fraction-based mode (existing) + if not (0.0 <= test_frac < 1.0 and (val_frac + test_frac) < 1.0): + raise ValueError(f"Invalid fractions: val={val_frac}, test={test_frac} (require 0 <= val,test < 1 and val+test < 1)") + + strat_all = y_all if len(np.unique(y_all)) > 1 else None + X_trval, X_test, y_trval, y_test = train_test_split( + X_all, y_all, test_size=test_frac, random_state=self.seed, stratify=strat_all + ) + + # Split val from trval (common to both modes) + if val_frac > 0 and len(y_trval) > 0: + actual_test_frac = len(y_test) / len(y_all) if len(y_all) > 0 else 0.0 + rel_val = val_frac / (1.0 - actual_test_frac) if (1.0 - actual_test_frac) > 0 else 0.0 + strat_tr = y_trval if len(np.unique(y_trval)) > 1 else None + X_train, X_val, y_train, y_val = train_test_split( + X_trval, y_trval, test_size=rel_val, random_state=self.seed, stratify=strat_tr + ) + else: + X_train, y_train = X_trval, y_trval + X_val, y_val = np.empty((0, X_all.shape[1])), np.empty((0,)) + + # ---------- build loaders + batch_size = self.dp_config.batch_size if self.dp_config else 32 + self.train_loader = self._mk_loader(X_train, y_train, batch_size, shuffle=True) + self.val_loader = self._mk_loader(X_val, y_val, batch_size=batch_size, shuffle=False) if len(y_val) else None + self.test_loader = self._mk_loader(X_test, y_test, batch_size, shuffle=False) + + # ---------- model/optimizer + input_dim = X_all.shape[1] + self.model = Net(input_dim) + self.optimizer = optim.SGD(self.model.parameters(), lr=0.01) + + # ---------- attach DP (same behavior as before; only wraps the train loader) + if self.dp_config and not self._dp_attached: + try: + from opacus import PrivacyEngine + privacy_engine = PrivacyEngine() + (self.model, self.optimizer, self.train_loader) = privacy_engine.make_private( + module=self.model, + optimizer=self.optimizer, + data_loader=self.train_loader, + noise_multiplier=self.dp_config.noise_multiplier, + max_grad_norm=self.dp_config.max_grad_norm, + secure_rng=self.dp_config.secure_rng, + ) + self._dp_attached = True + except ImportError: + print("Opacus non installé : exécution sans DP.") + + # ---------- record effective settings + self.effective_features = feat_cols + self.effective_target = target_col + self.effective_val_frac = float(val_frac) + # effective_test_frac already set above if ID mode; otherwise use the input + if self.test_ids and self.test_ids.strip(): + pass # Already set + else: + self.effective_test_frac = float(test_frac) + + self._initialized = True + print(f"[Client] Initialized with features={feat_cols}, target={target_col}, val={val_frac}, test={self.effective_test_frac}") + + # ---------- FL API (unchanged behavior) ---------- + + def get_parameters(self, config): + if not self._initialized: + try: + self._lazy_init_from_server_config(config if isinstance(config, dict) else {}) + except Exception as e: + if not self._initialized: + self._lazy_init_from_server_config({}) + return [val.cpu().numpy() for val in self.model.state_dict().values()] + + def set_parameters(self, parameters): + params_dict = zip(self.model.state_dict().keys(), parameters) + state_dict = {k: torch.tensor(v) for k, v in params_dict} + self.model.load_state_dict(state_dict, strict=True) + + def fit(self, parameters, config): + if not self._initialized: + self._lazy_init_from_server_config(config) + + self.set_parameters(parameters) + self.model.train() + + local_epochs = config.get("local_epochs", 5) + total_loss = 0.0 + print(f"Training for {local_epochs} epochs...") + + for epoch in range(local_epochs): + print(f"Epoch {epoch + 1}/{local_epochs}") + for X_batch, y_batch in self.train_loader: + self.optimizer.zero_grad() + outputs = self.model(X_batch) + loss = self.criterion(outputs.squeeze(), y_batch) + loss.backward() + self.optimizer.step() + total_loss += loss.item() * X_batch.size(0) + + avg_loss = total_loss / (len(self.train_loader.dataset) * local_epochs) + + with torch.no_grad(): + logits = self.model(self.X_tensor).squeeze() + probs = torch.sigmoid(logits).cpu().numpy() + y_true = self.y_tensor.cpu().numpy() + binary_preds = (probs >= 0.5).astype(int) + try: + auc = roc_auc_score(y_true, probs) + except Exception: + auc = float("nan") + acc = accuracy_score(y_true, binary_preds) + + hostname = socket.gethostname() + os_type = platform.system() + metrics = { + "hostname": hostname, + "os_type": os_type, + "train_loss": avg_loss, + "train_accuracy": acc, + "train_auc": auc, + "features": ",".join(self.effective_features), + "target": self.effective_target, + "val_fraction": self.effective_val_frac, + "test_fraction": self.effective_test_frac, + } + + return self.get_parameters(config), len(self.train_loader.dataset), metrics + + def evaluate(self, parameters, config): + if not self._initialized: + self._lazy_init_from_server_config(config) + + self.set_parameters(parameters) + self.model.eval() + + total_loss = 0.0 + all_probs, all_true = [], [] + with torch.no_grad(): + for X_batch, y_batch in self.test_loader: + outputs = self.model(X_batch) + loss = self.criterion(outputs.squeeze(), y_batch) + total_loss += loss.item() * X_batch.size(0) + probs = torch.sigmoid(outputs.squeeze()).cpu().numpy() + all_probs.extend(probs.tolist()) + all_true.extend(y_batch.cpu().numpy().tolist()) + + avg_loss = total_loss / len(self.test_loader.dataset) if len(self.test_loader.dataset) > 0 else 0.0 + binary_preds = [1 if p >= 0.5 else 0 for p in all_probs] + try: + auc = roc_auc_score(all_true, all_probs) + except Exception: + auc = float("nan") + acc = accuracy_score(all_true, binary_preds) + + metrics = { + "eval_loss": avg_loss, + "eval_accuracy": acc, + "eval_auc": auc, + } + print(f"Evaluation metrics: {metrics}") + + return float(avg_loss), len(self.test_loader.dataset), metrics + + def get_properties(self, config): + hostname = socket.gethostname() + os_type = platform.system() + + if self._initialized: + num_samples = int(self.X_tensor.shape[0]) + num_features = int(self.X_tensor.shape[1]) + features_str = ",".join(self.effective_features) + target_name = self.effective_target + label_counts = pd.Series(self.y_tensor.numpy()).value_counts().to_dict() + classes = sorted(label_counts.keys()) + else: + num_samples = len(self.X_tensor) + num_features = self.X_tensor.shape[1] + features_str = ",".join(self.feature_names) + target_name = self.target_name + label_counts = self.label_counts + classes = self.classes + + classes_str = ",".join(map(str, classes)) + dist_str = ",".join(f"{cls}:{cnt}" for cls, cnt in label_counts.items()) + + cpu_physical = psutil.cpu_count(logical=False) + cpu_logical = psutil.cpu_count(logical=True) + total_mem_gb = round(psutil.virtual_memory().total / (1024**3), 2) + driver_present = shutil.which('nvidia-smi') is not None + gpu_count = 0 + if GPUtil and driver_present: + try: + gpu_count = len(GPUtil.getGPUs()) + except Exception: + gpu_count = 0 + + return { + "hostname": hostname, + "os_type": os_type, + "num_samples": num_samples, + "num_features": num_features, + "features": features_str, + "target": target_name, + "classes": classes_str, + "label_distribution": dist_str, + "cpu_physical_cores": cpu_physical, + "cpu_logical_cores": cpu_logical, + "total_memory_gb": total_mem_gb, + "gpu_driver_present": str(driver_present), + "gpu_count": gpu_count, + } + + def start(self): + fl.client.start_numpy_client( + server_address=self.server_address, + client=self, + ) diff --git a/build/lib/MEDfl/rw/model.py b/build/lib/MEDfl/rw/model.py new file mode 100644 index 0000000..3c50a1f --- /dev/null +++ b/build/lib/MEDfl/rw/model.py @@ -0,0 +1,147 @@ +import math +import torch +import torch.nn as nn +import torch.nn.functional as F + +_ACTS = { + "relu": nn.ReLU, + "gelu": nn.GELU, + "leaky_relu": lambda: nn.LeakyReLU(0.01), + "tanh": nn.Tanh, + "elu": nn.ELU, + "silu": nn.SiLU, + "identity": nn.Identity, +} + +def _make_activation(name): + if name not in _ACTS: + raise ValueError(f"Unsupported activation '{name}'. Choose from {list(_ACTS)}") + return _ACTS[name]() + +class Net(nn.Module): + """ + Flexible MLP with task-aware output. + - hidden_dims: e.g., [128, 64, 32] + - activation: 'relu' | 'gelu' | 'leaky_relu' | ... + - batchnorm: apply BatchNorm1d after each linear (except output) + - dropout: float in [0,1] or list per hidden layer + - task: 'binary' | 'multiclass' | 'multilabel' | 'regression' + - num_classes: required for 'multiclass'; for 'binary' ignore; for 'multilabel' set to label count + - return_logits: always True for training (recommended). Use .predict() for post-activation outputs. + """ + + def __init__( + self, + input_dim, + hidden_dims=[64, 32], + activation="relu", + batchnorm=True, + dropout=0.0, + task="binary", + num_classes=None, + output_bias=True, + return_logits=True, + weight_init="kaiming", + ): + super().__init__() + self.task = task + self.num_classes = num_classes + self.return_logits = return_logits + self.act = activation + + if task == "multiclass": + if not num_classes or num_classes < 2: + raise ValueError("For 'multiclass', num_classes >= 2 is required.") + output_dim = num_classes + elif task == "binary": + output_dim = 1 + elif task == "multilabel": + if not num_classes or num_classes < 1: + raise ValueError("For 'multilabel', set num_classes = number of labels.") + output_dim = num_classes + elif task == "regression": + output_dim = 1 + else: + raise ValueError(f"Unknown task: {task}") + + # Normalize dropout to list per hidden layer + if isinstance(dropout, (int, float)): + dropout = [float(dropout)] * len(hidden_dims) + elif dropout is None: + dropout = [0.0] * len(hidden_dims) + elif isinstance(dropout, list): + if len(dropout) != len(hidden_dims): + raise ValueError("Length of dropout list must match hidden_dims.") + else: + raise ValueError("dropout must be float|list[float]|None") + + self.blocks = nn.ModuleList() + in_dim = input_dim + for h, p in zip(hidden_dims, dropout): + block = nn.ModuleDict({ + "lin": nn.Linear(in_dim, h, bias=True), + "bn": nn.BatchNorm1d(h) if batchnorm else nn.Identity(), + "act": _make_activation(activation), + "drop": nn.Dropout(p) if p and p > 0 else nn.Identity(), + }) + self.blocks.append(block) + in_dim = h + + self.out = nn.Linear(in_dim, output_dim, bias=output_bias) + + # Weight init + if weight_init != "none": + self.apply(lambda m: self._init_weights(m, scheme=weight_init, activation=activation)) + + @staticmethod + def _init_weights(m, scheme, activation): + if isinstance(m, nn.Linear): + if scheme == "kaiming": + nonlinearity = "leaky_relu" if activation == "leaky_relu" else "relu" + nn.init.kaiming_uniform_( + m.weight, + a=math.sqrt(5) if activation == "leaky_relu" else 0, + nonlinearity=nonlinearity, + ) + elif scheme == "xavier": + nn.init.xavier_uniform_(m.weight) + if m.bias is not None: + fan_in, _ = nn.init._calculate_fan_in_and_fan_out(m.weight) + bound = 1 / math.sqrt(fan_in) if fan_in > 0 else 0 + nn.init.uniform_(m.bias, -bound, bound) + + def forward(self, x): + for blk in self.blocks: + x = blk["lin"](x) + x = blk["bn"](x) + x = blk["act"](x) + x = blk["drop"](x) + logits = self.out(x) + return logits if self.return_logits else self._apply_output_activation(logits) + + # Inference helpers + def _apply_output_activation(self, logits): + if self.task == "binary": + return torch.sigmoid(logits) # (B, 1) + elif self.task == "multiclass": + return F.softmax(logits, dim=-1) # (B, C) + elif self.task == "multilabel": + return torch.sigmoid(logits) # (B, L) + elif self.task == "regression": + return logits # raw regression output + else: + raise RuntimeError("Invalid task") + + @torch.no_grad() + def predict(self, x): + out = self.forward(x) + probs = self._apply_output_activation(out) if self.return_logits else out + + if self.task == "binary": + return (probs >= 0.5).long() + elif self.task == "multiclass": + return probs.argmax(dim=-1) + elif self.task == "multilabel": + return (probs >= 0.5).long() + elif self.task == "regression": + return probs diff --git a/build/lib/MEDfl/rw/server.py b/build/lib/MEDfl/rw/server.py new file mode 100644 index 0000000..178658a --- /dev/null +++ b/build/lib/MEDfl/rw/server.py @@ -0,0 +1,134 @@ +import flwr as fl +from flwr.server.strategy import FedAvg +from flwr.server.server import ServerConfig +from MEDfl.rw.strategy import Strategy +import asyncio +from flwr.server.client_manager import ClientManager +from flwr.server.client_proxy import ClientProxy +from flwr.common import GetPropertiesIns +from flwr.common import GetPropertiesIns + + +class FederatedServer: + """ + FederatedServer wraps the launch and configuration of a Flower federated learning server. + + Attributes: + server_address (str): Server host and port in the format "host:port". + server_config (ServerConfig): Configuration for the Flower server. + strategy_wrapper (Strategy): Wrapper around the actual Flower strategy. + strategy (flwr.server.Strategy): Actual Flower strategy instance. + certificates (Any): Optional TLS certificates. + connected_clients (list): List of connected client IDs. + + Methods: + start(): + Launch the Flower server with the specified strategy and log client connections. + """ + + def __init__( + self, + host="0.0.0.0", + port=8080, + num_rounds=3, + strategy=None, + certificates=None, + ): + """ + Initialize the FederatedServer. + + Args: + host (str): Hostname or IP to bind the server to. + port (int): Port to listen on. + num_rounds (int): Number of federated learning rounds to execute. + strategy (Optional[Strategy]): Optional custom strategy wrapper. + certificates (Optional[Any]): Optional TLS certificates. + """ + # Server address and configuration + self.server_address = f"{host}:{port}" + self.server_config = ServerConfig(num_rounds=num_rounds) + + # Use custom or default strategy + self.strategy_wrapper = strategy or Strategy() + self.strategy_wrapper.create_strategy() + if self.strategy_wrapper.strategy_object is None: + raise ValueError("Strategy object not initialized. Call create_strategy() first.") + self.strategy = self.strategy_wrapper.strategy_object + + self.certificates = certificates + self.connected_clients = [] # Track connected client IDs + + + def start(self): + """ + Start the Flower server with the configured strategy and track client connections. + """ + print(f"Using strategy: {self.strategy_wrapper.name}") + print(f"Starting Flower server on {self.server_address} with strategy {self.strategy_wrapper.name}") + + # Use a custom client manager that logs client connections + client_manager = TrackingClientManager(self) + + # Launch the Flower server + fl.server.start_server( + server_address=self.server_address, + config=self.server_config, + strategy=self.strategy, + certificates=self.certificates, + client_manager=client_manager, + ) + + +class TrackingClientManager(fl.server.client_manager.SimpleClientManager): + """ + TrackingClientManager extends the default SimpleClientManager to log client connections. + + Attributes: + server (FederatedServer): The FederatedServer instance this manager belongs to. + client_properties (dict): Placeholder for storing client-specific properties. + """ + + def __init__(self, server): + """ + Initialize the TrackingClientManager. + + Args: + server (FederatedServer): Reference to the FederatedServer. + """ + super().__init__() + self.server = server + self.client_properties = {} + + def register(self, client): + """ + Register a client and log its connection. + + Args: + client (ClientProxy): The client proxy being registered. + + Returns: + bool: True if the client was registered successfully. + """ + success = super().register(client) + if success and client.cid not in self.server.connected_clients: + # Run the asynchronous hostname fetch synchronously + asyncio.run(self._fetch_and_log_hostname(client)) + return success + + async def _fetch_and_log_hostname(self, client): + """ + Asynchronously fetch and log the client's hostname or CID. + + Args: + client (ClientProxy): The client proxy. + """ + # Optional: uncomment to fetch hostname from client properties + # try: + # ins = GetPropertiesIns(config={}) + # props = await client.get_properties(ins=ins, timeout=10.0, group_id=0) + # hostname = props.properties.get("hostname", "unknown") + # except Exception as e: + # hostname = f"Error: {e}" + + print(f"✅ Client connected - CID: {client.cid}") + self.server.connected_clients.append(client.cid) diff --git a/build/lib/MEDfl/rw/strategy.py b/build/lib/MEDfl/rw/strategy.py new file mode 100644 index 0000000..ba1ce42 --- /dev/null +++ b/build/lib/MEDfl/rw/strategy.py @@ -0,0 +1,302 @@ +# File: MEDfl/rw/strategy.py + +import os +import numpy as np +import flwr as fl +from flwr.common import GetPropertiesIns +from flwr.server.client_manager import ClientManager +from flwr.server.client_proxy import ClientProxy +import time +from MEDfl.rw.model import Net +import torch + +# =================================================== +# Custom metric aggregation functions +# =================================================== +def aggregate_fit_metrics(results): + total = sum(n for n, _ in results) + loss = sum(m.get("train_loss", 0.0) * n for n, m in results) / total + acc = sum(m.get("train_accuracy", 0.0) * n for n, m in results) / total + auc = sum(m.get("train_auc", 0.0) * n for n, m in results) / total + return {"train_loss": loss, "train_accuracy": acc, "train_auc": auc} + +def aggregate_eval_metrics(results): + total = sum(n for n, _ in results) + loss = sum(m.get("eval_loss", 0.0) * n for n, m in results) / total + acc = sum(m.get("eval_accuracy", 0.0) * n for n, m in results) / total + auc = sum(m.get("eval_auc", 0.0) * n for n, m in results) / total + return {"eval_loss": loss, "eval_accuracy": acc, "eval_auc": auc} + +# =================================================== +# Strategy Wrapper +# =================================================== +class Strategy: + """ + Flower Strategy wrapper: + - Dynamic hyperparameters via on_fit_config_fn + - Custom metric aggregation + - Per-client & aggregated metric logging + - Synchronous get_properties() inspection in configure_fit() + - Saving global parameters every saveOnRounds to savingPath + + Extended: + - split_mode: + * "global": use global val_fraction/test_fraction for all clients + * "per_client": use client_fractions[hostname] if present + - client_fractions: + { + "HOSTNAME_1": { + "val_fraction": float (optional), + "test_fraction": float (optional), + "test_ids": [..] or "id1,id2" (optional) + }, + ... + } + - In per_client mode: + * if test_ids is present for a client: + -> send test_ids + -> do NOT use that client's test_fraction + * otherwise: + -> use that client's val_fraction/test_fraction if provided, + else fall back to global val_fraction/test_fraction + - client id in this mapping = hostname from client.get_properties() + - id_col: + * column name used on clients to match test_ids (default "id") + """ + + def __init__( + self, + name="FedAvg", + fraction_fit=1.0, + fraction_evaluate=1.0, + min_fit_clients=2, + min_evaluate_clients=2, + min_available_clients=2, + initial_parameters=None, + evaluate_fn=None, + fit_metrics_aggregation_fn=None, + evaluate_metrics_aggregation_fn=None, + local_epochs=1, + threshold=0.5, + learning_rate=0.01, + optimizer_name="SGD", + savingPath="", + saveOnRounds=3, + total_rounds=3, + features="", + target="", + val_fraction=0.10, + test_fraction=0.10, + # NEW: splitting control (added at the end to not break existing calls) + split_mode="global", # "global" or "per_client" + client_fractions=None, + # NEW: id column for test_ids mapping + id_col="id", + ): + self.name = name + self.fraction_fit = fraction_fit + self.fraction_evaluate = fraction_evaluate + self.min_fit_clients = min_fit_clients + self.min_evaluate_clients = min_evaluate_clients + self.min_available_clients = min_available_clients + self.initial_parameters = initial_parameters or [] + self.evaluate_fn = evaluate_fn + + self.fit_metrics_aggregation_fn = fit_metrics_aggregation_fn or aggregate_fit_metrics + self.evaluate_metrics_aggregation_fn = evaluate_metrics_aggregation_fn or aggregate_eval_metrics + + # Dynamic hyperparams + self.local_epochs = local_epochs + self.threshold = threshold + self.learning_rate = learning_rate + self.optimizer_name = optimizer_name + self.savingPath = savingPath + self.saveOnRounds = saveOnRounds + self.total_rounds = total_rounds + self._features = features # comma-separated or "" + self._target = target # or "" + self._val_fraction = val_fraction + self._test_fraction = test_fraction + + # NEW + self.split_mode = split_mode + self.client_fractions = client_fractions or {} + self.id_col = id_col + + self.strategy_object = None + + def create_strategy(self): + # 1) Pick the Flower Strategy class + StrategyClass = getattr(fl.server.strategy, self.name) + + # 2) Define on_fit_config_fn _before_ instantiation (global defaults) + def fit_config_fn(server_round): + return { + "local_epochs": self.local_epochs, + "threshold": self.threshold, + "learning_rate": self.learning_rate, + "optimizer": self.optimizer_name, + "features": self._features, + "target": self._target, + "val_fraction": float(self._val_fraction), + "test_fraction": float(self._test_fraction), + # NEW: always send id_col so clients know which column to use for test_ids + "id_col": self.id_col, + } + + # 3) Build params including on_fit_config_fn + params = { + "fraction_fit": self.fraction_fit, + "fraction_evaluate": self.fraction_evaluate, + "min_fit_clients": self.min_fit_clients, + "min_evaluate_clients": self.min_evaluate_clients, + "min_available_clients": self.min_available_clients, + "evaluate_fn": self.evaluate_fn, + "on_fit_config_fn": fit_config_fn, + "fit_metrics_aggregation_fn": self.fit_metrics_aggregation_fn, + "evaluate_metrics_aggregation_fn": self.evaluate_metrics_aggregation_fn, + } + if self.initial_parameters: + params["initial_parameters"] = fl.common.ndarrays_to_parameters(self.initial_parameters) + else: + # derive initial params from server-specified features + feat_cols = [c.strip() for c in (self._features or "").split(",") if c.strip()] + if not feat_cols: + raise ValueError( + "No initial_parameters provided and 'features' is empty. " + "Provide Strategy(..., features='col1,col2,...') or pass initial_parameters." + ) + input_dim = len(feat_cols) + _model = Net(input_dim) + _arrays = [t.detach().cpu().numpy() for t in _model.state_dict().values()] + params["initial_parameters"] = fl.common.ndarrays_to_parameters(_arrays) + + # 4) Instantiate the real Flower strategy + strat = StrategyClass(**params) + + # 5) Wrap aggregate_fit for logging (prints unchanged) + original_agg_fit = strat.aggregate_fit + + def logged_agg_fit(server_round, results, failures): + print(f"\n[Server] 🔄 Round {server_round} - Client Training Metrics:") + for i, (client_id, fit_res) in enumerate(results): + print(f" CTM Round {server_round} Client:{client_id.cid}: {fit_res.metrics}") + agg_params, metrics = original_agg_fit(server_round, results, failures) + print(f"[Server] ✅ Round {server_round} - Aggregated Training Metrics: {metrics}\n") + # save the model parameters if savingPath is set on each saveOnRounds + if self.savingPath and ( + (server_round % self.saveOnRounds == 0) + or (self.total_rounds and server_round == self.total_rounds) + ): + arrays = fl.common.parameters_to_ndarrays(agg_params) + # Determine filename: final_model on last round else round_{n} + filename = ( + f"round_{server_round}_final_model.npz" + if server_round == self.total_rounds + else f"round_{server_round}_model.npz" + ) + filepath = os.path.join(self.savingPath, filename) + np.savez(filepath, *arrays) + return agg_params, metrics + + strat.aggregate_fit = logged_agg_fit + + # 6) Wrap aggregate_evaluate for logging (prints unchanged) + original_agg_eval = strat.aggregate_evaluate + + def logged_agg_eval(server_round, results, failures): + print(f"\n[Server] 📊 Round {server_round} - Client Evaluation Metrics:") + for i, (client_id, eval_res) in enumerate(results): + print(f" CEM Round {server_round} Client:{client_id.cid}: {eval_res.metrics}") + loss, metrics = original_agg_eval(server_round, results, failures) + print(f"[Server] ✅ Round {server_round} - Aggregated Evaluation Metrics:") + print(f" Loss: {loss}, Metrics: {metrics}\n") + return loss, metrics + + strat.aggregate_evaluate = logged_agg_eval + + # 7) Wrap configure_fit to: + # - log client properties (unchanged) + # - apply split_mode/client_fractions to fit_ins.config (NEW) + original_conf_fit = strat.configure_fit + + def wrapped_conf_fit( + server_round, + parameters, + client_manager + ): + selected = original_conf_fit( + server_round=server_round, + parameters=parameters, + client_manager=client_manager + ) + + ins = GetPropertiesIns(config={}) + + for client, fit_ins in selected: + hostname = None + try: + props = client.get_properties(ins=ins, timeout=10.0, group_id=0) + print(f"\n📋 [Round {server_round}] Client {client.cid} Properties: {props.properties}") + hostname = props.properties.get("hostname", None) + except Exception as e: + print(f"⚠️ Failed to get properties from {client.cid}: {e}") + + # Fallback: if no hostname returned, use Flower cid + if not hostname: + hostname = client.cid + + # Keep same object + cfg = fit_ins.config + + if self.split_mode == "per_client": + # Lookup by hostname (preferred) or cid + per_cfg = ( + self.client_fractions.get(hostname) + or self.client_fractions.get(client.cid) + or {} + ) + + # val_fraction: per-client override if present + if "val_fraction" in per_cfg: + try: + cfg["val_fraction"] = float(per_cfg["val_fraction"]) + except Exception: + pass # keep existing if invalid + + # test: prefer test_ids if provided + if "test_ids" in per_cfg and per_cfg["test_ids"]: + test_ids_val = per_cfg["test_ids"] + if isinstance(test_ids_val, (list, tuple, set)): + test_ids_str = ",".join(str(x) for x in test_ids_val) + else: + test_ids_str = str(test_ids_val) + cfg["test_ids"] = test_ids_str + # when using explicit IDs, do not force a test_fraction for this client + if "test_fraction" in cfg: + del cfg["test_fraction"] + # ensure id_col is sent so client can map IDs + cfg["id_col"] = self.id_col + else: + # no test_ids -> use per-client test_fraction if present + if "test_fraction" in per_cfg: + try: + cfg["test_fraction"] = float(per_cfg["test_fraction"]) + except Exception: + pass # keep existing if invalid + # if no test_ids: id_col not strictly required, leave as-is + else: + # split_mode == "global": enforce global fractions, clear any test_ids + if "test_ids" in cfg: + del cfg["test_ids"] + cfg["val_fraction"] = float(self._val_fraction) + cfg["test_fraction"] = float(self._test_fraction) + # also send id_col so clients know column name if needed + cfg["id_col"] = self.id_col + + return selected + + strat.configure_fit = wrapped_conf_fit + + # 8) Save the ready-to-use strategy + self.strategy_object = strat diff --git a/build/lib/MEDfl/scripts/__init__.py b/build/lib/MEDfl/scripts/__init__.py new file mode 100644 index 0000000..0e0ec23 --- /dev/null +++ b/build/lib/MEDfl/scripts/__init__.py @@ -0,0 +1,2 @@ +# from .base import * +# from .create_db import * \ No newline at end of file diff --git a/build/lib/MEDfl/scripts/base.py b/build/lib/MEDfl/scripts/base.py new file mode 100644 index 0000000..1f5030a --- /dev/null +++ b/build/lib/MEDfl/scripts/base.py @@ -0,0 +1,30 @@ +import mysql.connector +from sqlalchemy import create_engine, text +from configparser import ConfigParser +import yaml +import pkg_resources +import os + +# Get the directory of the current script +current_directory = os.path.dirname(os.path.abspath(__file__)) + +# Load configuration from the config file +config_file_path = os.path.join(current_directory, 'db_config.ini') + +config = ConfigParser() +config.read(config_file_path) +mysql_config = config['mysql'] + + + +connection_string = ( + f"mysql+mysqlconnector://{mysql_config['user']}:{mysql_config['password']}@" + f"{mysql_config['host']}:{mysql_config['port']}/{mysql_config['database']}" +) + +eng = create_engine( + connection_string, + execution_options={"autocommit": True}, +) + +my_eng = eng.connect() \ No newline at end of file diff --git a/build/lib/MEDfl/scripts/create_db.py b/build/lib/MEDfl/scripts/create_db.py new file mode 100644 index 0000000..a98cafb --- /dev/null +++ b/build/lib/MEDfl/scripts/create_db.py @@ -0,0 +1,126 @@ +import sys +import sqlite3 +import pandas as pd +from configparser import ConfigParser +import os +import ast + +from MEDfl.LearningManager.utils import * + + +def main(csv_file_path): + try: + # Get the directory of the current script + current_directory = os.path.dirname(os.path.abspath(__file__)) + + # Load configuration from the config file + # config_file_path = os.path.join(current_directory, 'sqllite_config.ini')* + + config_file_path = load_db_config() + + # config = ConfigParser() + # config.read(config_file_path) + # sqlite_config = config['sqllite'] + + sqlite_config = config_file_path + + + print('Im here !') + + # Connect to SQLite database (it will be created if it doesn't exist) + database_path = sqlite_config['database'] + conn = sqlite3.connect(database_path) + cursor = conn.cursor() + + # Drop each table if it exists + tables = ['Networks', 'FLsetup', 'Nodes', 'DataSets', 'FLpipeline', 'testResults', 'FedDatasets'] + for table in tables: + cursor.execute(f"DROP TABLE IF EXISTS {table}") + + # Create Networks table + cursor.execute( + "CREATE TABLE Networks( \ + NetId INTEGER PRIMARY KEY AUTOINCREMENT, \ + NetName TEXT \ + );" + ) + + # Create FLsetup table + cursor.execute("CREATE TABLE FLsetup (\ + FLsetupId INTEGER PRIMARY KEY AUTOINCREMENT,\ + name TEXT NOT NULL, \ + description TEXT NOT NULL,\ + creation_date TEXT NOT NULL,\ + NetId INTEGER NOT NULL,\ + column_name TEXT\ + )") + + # Create Nodes table + cursor.execute("CREATE TABLE Nodes ( \ + NodeId INTEGER PRIMARY KEY AUTOINCREMENT,\ + NodeName TEXT,\ + train BOOLEAN DEFAULT 1,\ + NetId INTEGER\ + )") + + data_df = pd.read_csv(csv_file_path) + columns = data_df.columns.tolist() + column_map = {"object": "TEXT", "int64": "INTEGER", "float64": "REAL"} + sub_query = ", ".join(f"{col} {column_map[str(data_df[col].dtype)]}" for col in columns) + + # Create Datasets table by getting columns from the master csv file + cursor.execute( + f"CREATE TABLE DataSets( \ + DataSetId INTEGER PRIMARY KEY AUTOINCREMENT, \ + DataSetName TEXT, \ + NodeId INTEGER,\ + {sub_query}\ + )" + ) + + # Create FLpipeline table + cursor.execute("CREATE TABLE FLpipeline(\ + id INTEGER PRIMARY KEY AUTOINCREMENT,\ + name TEXT NOT NULL, \ + description TEXT NOT NULL,\ + creation_date TEXT NOT NULL,\ + results TEXT NOT NULL\ + ) ") + + # Create test results table + cursor.execute("CREATE TABLE testResults(\ + pipelineId INTEGER,\ + nodename TEXT NOT NULL, \ + confusionmatrix TEXT,\ + accuracy REAL,\ + sensivity REAL,\ + ppv REAL,\ + npv REAL,\ + f1score REAL,\ + fpr REAL,\ + tpr REAL, \ + PRIMARY KEY (pipelineId, nodename)\ + ) ") + + # Create FederatedDataset table + cursor.execute("CREATE TABLE FedDatasets (\ + FedId INTEGER PRIMARY KEY AUTOINCREMENT,\ + FLsetupId INTEGER,\ + FLpipeId INTEGER,\ + name TEXT NOT NULL\ + )") + + # Commit and close the cursor + conn.commit() + cursor.close() + conn.close() + + except sqlite3.Error as e: + print(f"Error: {e}") + +if __name__ == "__main__": + if len(sys.argv) != 2: + print("Usage: python script.py ") + sys.exit(1) + csv_file_path = sys.argv[1] + main(csv_file_path) diff --git a/build/lib/alembic/__init__.py b/build/lib/alembic/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib/alembic/env.py b/build/lib/alembic/env.py new file mode 100644 index 0000000..14593a4 --- /dev/null +++ b/build/lib/alembic/env.py @@ -0,0 +1,61 @@ +from logging.config import fileConfig +import logging +from sqlalchemy import engine_from_config, create_engine +from sqlalchemy import pool +import sys +import os +from alembic import context + +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from scripts.base import my_eng + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +target_metadata = None + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. +def configure_logger(name): + # This is the standard logging configuration + logging.config.fileConfig( + 'alembic_logging.ini', # Path to your logging configuration file + defaults={ + 'logfilename': 'alembic.log', # Log file name + }, + disable_existing_loggers=False, + ) + + return logging.getLogger(name) + + + +def run_migrations_offline(): + """Run migrations in 'offline' mode.""" + pass + +def run_migrations_online(): + """Run migrations in 'online' mode.""" + pass + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_build/.buildinfo b/docs/_build/.buildinfo new file mode 100644 index 0000000..2188cfb --- /dev/null +++ b/docs/_build/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: c1d55650b2098a4309dc51d204bc0f92 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/.doctrees/Medfl.LearningManager.doctree b/docs/_build/.doctrees/Medfl.LearningManager.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b8b0b3f13fb3f02f723fb7e9ef91fbff7ca196bc GIT binary patch literal 381630 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 z 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�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 literal 0 HcmV?d00001 diff --git a/docs/_build/.doctrees/Medfl.NetManager.doctree b/docs/_build/.doctrees/Medfl.NetManager.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e537119acbfc9ebdbf2262fc46ab334db0402a53 GIT binary patch literal 195199 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
    tM-Faqzbn_gso4G<&Y`PNb(pZ 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 YSGR-2q4~MODa5eDd6S-EWC~#Ze*tB>RsaA1 literal 0 HcmV?d00001 diff --git a/docs/_build/.doctrees/Medfl.doctree b/docs/_build/.doctrees/Medfl.doctree new file mode 100644 index 0000000000000000000000000000000000000000..090d088dfd66aa39f2d4ff1fd1d234cebfd05205 GIT binary patch literal 3516 zcmb7HU2hyU6iu7#CYxk;lRzt^Hc*60Q$bQBc;G`qNNtf&$qESKX{(WU#=AE0*n{n9 zHxEeV0n|vA`cTuCO8f_Y2LFoV@$Bqot0EC;rSY|Weeb#Fe&k8(&%e7X)t~E|f^j)L zB3UL?MvZqHnM%u?O6#Bd+rRl={ekOf^4O?Sr_{R@oJbiLnWoY|^sX0#W7vZ2h4>U>(=8+zPs|<+{f-8;ctSNl(dy`fw2E)_$bZV8HVB?><`8E(qSY zp6$9$(iqHEUAwk(;MN3})DOxLaht?i%}1q$f5D$so|$0#dMb!95aPQfNgls8va*;j zMlej%aX3@DbxS5;%d)ikFyV9L<>fA5LlHLs+8G6fMV>}3Vc_o)pRj< z_1^0qV%J=&aurA;SejS(9t_--2*9_1NOCzjCK937{trKJJ8^43?OaOTHkYX=GdkuX z>R{iq6Y4f{GR+`g!W$Z)urqx6mK?1>(LaT|UCf2f+ zRhEdz;`&TQ>M}rc$@S7whf0|=b#Z$piS^NK7-}uD5T$>&spVr`u_g1a{Sy%-lCEh6 zZB^Q$w0^+)1J{{QNj0%bBX>I)L4~y>FR<8(4<>l!6wA$eS!#h*7b%m3${Kd@a4Y27 znRk0*rL0tzE^I!yOiHxsJ0(g`Cn6Q~{tJA6y6cm0U;f|gdL z#k>8boh23QAJ>aY=LXEKUcb1pbkpqw2S7B#fRBJf$U{Noq(p@V+!@xFQBmC+nx;x; z3Cb@;uFEtO_kn98%f|2#aPSO7Ma7=bQNy9&&S_wD`m6k*V zh5brWu|LFqE-DNyGnGv9z^5HLEtH|j;?0U8sZAbn!y`ZYNyZHsiQq_W<@ziykYn3$ z#vl`_B!kj!eJq)E9d|W+;Soc1m55XZZ5iUdg`R;p#U=Q;8G7%~zv7x*D zlo8m2z{g|*$`ypTeOeZHBFvdpo34uhdO9Rrj=_OhRoDx40_}9^9M1!Jg(5K(!(e#o z!5Ity8S?iGCNN4Z9=Vd@)M-L~(1zE*7*0giCO68+4V7iT1OOU*v zB3d6ua@fQYJ)x*g7%q2V6sTn}D5HL3jtRBf?Ol+@krQHQ8#jw~NFhwCkgo?}{61iR zv6oCR&R($RrR#(pdse{IF!TL&&cr!;abB`_!}28tRgU@NIlAOCOnL2SSX0qwQ)e@h zuxCv-oApCD^YUgg}7d16tSm-CF(}*#GW-Ko;VE6XY}gn=s&Ae6T5C7sOkQxT4Nh XJ*0xFlfatIEY#S#9EGW&93A}&4yjqV literal 0 HcmV?d00001 diff --git a/docs/_build/.doctrees/environment.pickle b/docs/_build/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..176b9030225285ff4e9caec33bdce7c1049b4511 GIT binary patch literal 992038 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 literal 0 HcmV?d00001 diff --git a/docs/_build/.doctrees/index.doctree b/docs/_build/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0112e8286dd39b5b37f5c105449f6de61a692e74 GIT binary patch literal 5081 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 Z<+Ak!d4~39m8H-|y)r=9x-0AV{tbT*pxFQb literal 0 HcmV?d00001 diff --git a/docs/_build/.doctrees/modules.doctree b/docs/_build/.doctrees/modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a7cf6a7c7e2b7fd7c4c04ae157be3ac6a5594547 GIT binary patch literal 2738 zcmZ8jTWcIQ6n1Ry)qAm>q!bdjgpwwqv0d6el=P*Lq)<#uX-XilL1<^RD`AZ^l{EJH zA<#loYS3HM-_XC=PcyT#Ya14ij*iat`;PQS>)-$S8|9xL+nfuvIHGB)bjob--Bc$< z#*_;m!;?S5`|#NJ485?rFbNBO0~!ezGBr$vcfpUMx)ahK)#p2wB~ED79Oo_G=AC!p zG4J`76Hc@(wPiV0sGs(u|;&e6n_X+1nr!{p9_4?_ec{U-}3D`u2a7)g<|2f zm{Q-T&KWT+9P)|rZ;8~#SUZWN)c}OdX7U^*oVmFyNS+nU8r=e8dahA1{~|e8Ma=jdhc^2#2=toU*Pu;zeo5z!S9~$)P9gC zYGp*3-s!TGe+TLZLM5_D*-RiDWXOM{zMIiS%5ulU$u=rP^RjuU=UnP(xbkf-(iFYE z^27RcBj~Ckn=-@FaI)e1WoxZg@)EjzKxP$0!N20)@B{u7*>9tg$LJDY&%}@Ggbyza z&2we~T~98aKU{Sn+CigPW5Tzx5=C@bm6f0_Pqfg7g{`WGWhCgs^(fX|Hpt>n{T*kh zvXaKiklg6GVYWh6%V|etm42;LR-=giZuwDCn21}_pmea5RA}{G%bXKx4&v=KOqv<3 z90M|Z`wf)^TGddotqYeIE}Zi5sqf91Vum_x0v0I+-W|5&J7d%FF&e`t^!ydy?=e<#!0^$69CXGM|~s`3VtZ5niq7=Q0^4# zO;FL_HZ0L5CEzV!0ymNCr@ozNHA9Xlhe!cb@O%+?+mC4BG+BxKrU15vX_4im!5^wx z3Iw2M6qV87xRjLWkG)@sa?6TTlSLNsw96K`wv4QwEFqFOaxSc>@Hr-_uyiV8B6XCV zB`?6S0g|y`LP;_h9oA}OIjj69@e58YGbIt3iq=x}dk4b?eX5qg=UyZiV58s`OC4K?DqnswkXu?a$PNn)CsMw z0e_Hiig?iYifpKISwfsXD{{Dqw|qI@>mh*401}~Qz`$}U?8iA_i|GwLkwx%IO)DzK zYx*nzGq^cY@b?lSaK;>*+)bc$Mp#CLBzTa-DO-lUS3fBLRynI?+Lhm8>O5ZezFW-_ zkQY!CDit7yBaWIm!)(G;zlWdzEr(|c<~MG?IJ^D+HEHz#fEdc%N!BD5B%+w + + + + + + MEDfl.LearningManager package — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_build/Medfl.NetManager.html b/docs/_build/Medfl.NetManager.html new file mode 100644 index 0000000..976d6be --- /dev/null +++ b/docs/_build/Medfl.NetManager.html @@ -0,0 +1,840 @@ + + + + + + + MEDfl.NetManager package — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    MEDfl.NetManager package

    +
    +

    Submodules

    +
    +
    +

    MEDfl.NetManager.dataset module

    +
    +
    +class MEDfl.NetManager.dataset.DataSet(name: str, path: str, engine=None)[source]
    +

    Bases: object

    +
    +
    +__init__(name: str, path: str, engine=None)[source]
    +

    Initialize a DataSet object.

    +
    +
    Parameters:
    +
      +
    • name (str) – The name of the dataset.

    • +
    • path (str) – The file path of the dataset CSV file.

    • +
    +
    +
    +
    + +
    +
    +delete_dataset()[source]
    +

    Delete the dataset from the database.

    +

    Notes: +- Assumes the dataset name is unique in the ‘DataSets’ table.

    +
    + +
    +
    +static list_alldatasets(engine)[source]
    +

    List all dataset names from the ‘DataSets’ table.

    +
    +
    Returns:
    +

    A DataFrame containing the names of all datasets in the ‘DataSets’ table.

    +
    +
    Return type:
    +

    pd.DataFrame

    +
    +
    +
    + +
    +
    +update_data()[source]
    +

    Update the data in the dataset.

    +

    Not implemented yet.

    +
    + +
    +
    +upload_dataset(NodeId=-1)[source]
    +

    Upload the dataset to the database.

    +
    +
    Parameters:
    +

    NodeId (int) – The NodeId associated with the dataset.

    +
    +
    +

    Notes: +- Assumes the file at self.path is a valid CSV file. +- The dataset is uploaded to the ‘DataSets’ table in the database.

    +
    + +
    +
    +validate()[source]
    +

    Validate name and path attributes.

    +
    +
    Raises:
    +

    TypeError – If name or path is not a string.

    +
    +
    +
    + +
    + +
    +
    +

    MEDfl.NetManager.flsetup module

    +
    +
    +class MEDfl.NetManager.flsetup.FLsetup(name: str, description: str, network: Network)[source]
    +

    Bases: object

    +
    +
    +__init__(name: str, description: str, network: Network)[source]
    +

    Initialize a Federated Learning (FL) setup.

    +
    +
    Parameters:
    +
      +
    • name (str) – The name of the FL setup.

    • +
    • description (str) – A description of the FL setup.

    • +
    • network (Network) – An instance of the Network class representing the network architecture.

    • +
    +
    +
    +
    + +
    +
    +create()[source]
    +

    Create an FL setup.

    +
    + +
    +
    +create_dataloader_from_node(node: Node, output, fill_strategy='mean', fit_encode=[], to_drop=[], train_batch_size: int = 32, test_batch_size: int = 1, split_frac: float = 0.2, dataset: Dataset | None = None)[source]
    +

    Create DataLoader from a Node.

    +
    +
    Parameters:
    +
      +
    • node (Node) – The node from which to create DataLoader.

    • +
    • train_batch_size (int) – The batch size for training data.

    • +
    • test_batch_size (int) – The batch size for test data.

    • +
    • split_frac (float) – The fraction of data to be used for training.

    • +
    • dataset (Dataset) – The dataset to use. If None, the method will read the dataset from the node.

    • +
    +
    +
    Returns:
    +

    The DataLoader instances for training and testing.

    +
    +
    Return type:
    +

    DataLoader

    +
    +
    +
    + +
    +
    +create_federated_dataset(output, fill_strategy='mean', fit_encode=[], to_drop=[], val_frac=0.1, test_frac=0.2) FederatedDataset[source]
    +

    Create a federated dataset.

    +
    +
    Parameters:
    +
      +
    • output (string) – the output feature of the dataset

    • +
    • val_frac (float) – The fraction of data to be used for validation.

    • +
    • test_frac (float) – The fraction of data to be used for testing.

    • +
    +
    +
    Returns:
    +

    The FederatedDataset instance containing train, validation, and test data.

    +
    +
    Return type:
    +

    FederatedDataset

    +
    +
    +
    + +
    +
    +create_nodes_from_master_dataset(params_dict: dict)[source]
    +

    Create nodes from the master dataset.

    +
    +
    Parameters:
    +

    params_dict (dict) – A dictionary containing parameters for node creation. +- column_name (str): The name of the column in the MasterDataset used to create nodes. +- train_nodes (list): A list of node names that will be used for training. +- test_nodes (list): A list of node names that will be used for testing.

    +
    +
    Returns:
    +

    A list of Node instances created from the master dataset.

    +
    +
    Return type:
    +

    list

    +
    +
    +
    + +
    +
    +delete()[source]
    +

    Delete the FL setup.

    +
    + +
    +
    +get_flDataSet()[source]
    +

    Retrieve the federated dataset associated with the FL setup using the FL setup’s name.

    +
    +
    Returns:
    +

    DataFrame containing the federated dataset information.

    +
    +
    Return type:
    +

    pandas.DataFrame

    +
    +
    +
    + +
    +
    +static list_allsetups()[source]
    +

    List all the FL setups.

    +
    +
    Returns:
    +

    A DataFrame containing information about all the FL setups.

    +
    +
    Return type:
    +

    DataFrame

    +
    +
    +
    + +
    +
    +classmethod read_setup(FLsetupId: int)[source]
    +

    Read the FL setup by FLsetupId.

    +
    +
    Parameters:
    +

    FLsetupId (int) – The id of the FL setup to read.

    +
    +
    Returns:
    +

    An instance of the FLsetup class with the specified FLsetupId.

    +
    +
    Return type:
    +

    FLsetup

    +
    +
    +
    + +
    +
    +validate()[source]
    +

    Validate name, description, and network.

    +
    + +
    + +
    +
    +

    MEDfl.NetManager.net_helper module

    +
    +
    +MEDfl.NetManager.net_helper.get_feddataset_id_from_name(name)[source]
    +

    Get the Federated dataset Id from the FedDatasets table based on the federated dataset name.

    +
    +
    Parameters:
    +

    name (str) – Federated dataset name.

    +
    +
    Returns:
    +

    FedId or None if not found.

    +
    +
    Return type:
    +

    int or None

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.get_flpipeline_from_name(name)[source]
    +

    Get the FLpipeline Id from the FLpipeline table based on the FL pipeline name.

    +
    +
    Parameters:
    +

    name (str) – FL pipeline name.

    +
    +
    Returns:
    +

    FLpipelineId or None if not found.

    +
    +
    Return type:
    +

    int or None

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.get_flsetupid_from_name(name)[source]
    +

    Get the FLsetupId from the FLsetup table based on the FL setup name.

    +
    +
    Parameters:
    +

    name (str) – FL setup name.

    +
    +
    Returns:
    +

    FLsetupId or None if not found.

    +
    +
    Return type:
    +

    int or None

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.get_netid_from_name(name)[source]
    +

    Get the Network Id from the Networks table based on the NetName.

    +
    +
    Parameters:
    +

    name (str) – Network name.

    +
    +
    Returns:
    +

    NetId or None if not found.

    +
    +
    Return type:
    +

    int or None

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.get_nodeid_from_name(name)[source]
    +

    Get the NodeId from the Nodes table based on the NodeName.

    +
    +
    Parameters:
    +

    name (str) – Node name.

    +
    +
    Returns:
    +

    NodeId or None if not found.

    +
    +
    Return type:
    +

    int or None

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.is_str(data_df, row, x)[source]
    +

    Check if a column in a DataFrame is of type ‘object’ and convert the value accordingly.

    +
    +
    Parameters:
    +
      +
    • data_df (pandas.DataFrame) – DataFrame containing the data.

    • +
    • row (pandas.Series) – Data row.

    • +
    • x (str) – Column name.

    • +
    +
    +
    Returns:
    +

    Processed value based on the column type.

    +
    +
    Return type:
    +

    str or float

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.master_table_exists()[source]
    +

    Check if the MasterDataset table exists in the database.

    +
    +
    Returns:
    +

    True if the table exists, False otherwise.

    +
    +
    Return type:
    +

    bool

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.process_data_after_reading(data, output, fill_strategy='mean', fit_encode=[], to_drop=[])[source]
    +

    Process data after reading from the database, including encoding, dropping columns, and creating a PyTorch TensorDataset.

    +
    +
    Parameters:
    +
      +
    • data (pandas.DataFrame) – Input data.

    • +
    • output (str) – Output column name.

    • +
    • fill_strategy (str, optional) – Imputation strategy for missing values. Default is “mean”.

    • +
    • fit_encode (list, optional) – List of columns to be label-encoded. Default is an empty list.

    • +
    • to_drop (list, optional) – List of columns to be dropped from the DataFrame. Default is an empty list.

    • +
    +
    +
    Returns:
    +

    Processed data as a PyTorch TensorDataset.

    +
    +
    Return type:
    +

    torch.utils.data.TensorDataset

    +
    +
    +
    + +
    +
    +MEDfl.NetManager.net_helper.process_eicu(data_df)[source]
    +

    Process eICU data by filling missing values with mean and replacing NaNs with ‘Unknown’.

    +
    +
    Parameters:
    +

    data_df (pandas.DataFrame) – Input data.

    +
    +
    Returns:
    +

    Processed data.

    +
    +
    Return type:
    +

    pandas.DataFrame

    +
    +
    +
    + +
    +
    +

    MEDfl.NetManager.net_manager_queries module

    +
    +
    +

    MEDfl.NetManager.network module

    +
    +
    +class MEDfl.NetManager.network.Network(name: str = '')[source]
    +

    Bases: object

    +

    A class representing a network.

    +
    +
    +name
    +

    The name of the network.

    +
    +
    Type:
    +

    str

    +
    +
    +
    + +
    +
    +mtable_exists
    +

    An integer flag indicating whether the MasterDataset table exists (1) or not (0).

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +__init__(name: str = '')[source]
    +

    Initialize a Network instance.

    +
    +
    Parameters:
    +

    name (str) – The name of the network.

    +
    +
    +
    + +
    +
    +add_node(node: Node)[source]
    +

    Add a node to the network.

    +
    +
    Parameters:
    +

    node (Node) – The node to add.

    +
    +
    +
    + +
    +
    +create_master_dataset(path_to_csv: str = 'D:\\ESI\\3CS\\PFE\\last_year\\Code\\MEDfl\\notebooks\\eicu_test.csv')[source]
    +

    Create the MasterDataset table and insert dataset values.

    +
    +
    Parameters:
    +

    path_to_csv – Path to the CSV file containing the dataset.

    +
    +
    +
    + +
    +
    +create_network()[source]
    +

    Create a new network in the database.

    +
    + +
    +
    +delete_network()[source]
    +

    Delete the network from the database.

    +
    + +
    +
    +static list_allnetworks()[source]
    +

    List all networks in the database. +:returns: A DataFrame containing information about all networks in the database. +:rtype: DataFrame

    +
    + +
    +
    +list_allnodes()[source]
    +

    List all nodes in the network.

    +
    +
    Parameters:
    +

    None

    +
    +
    Returns:
    +

    A DataFrame containing information about all nodes in the network.

    +
    +
    Return type:
    +

    DataFrame

    +
    +
    +
    + +
    +
    +update_network(FLsetupId: int)[source]
    +

    Update the network’s FLsetupId in the database.

    +
    +
    Parameters:
    +

    FLsetupId (int) – The FLsetupId to update.

    +
    +
    +
    + +
    +
    +use_network(network_name: str)[source]
    +

    Use a network in the database.

    +
    +
    Parameters:
    +

    network_name (str) – The name of the network to use.

    +
    +
    Returns:
    +

    An instance of the Network class if the network exists, else None.

    +
    +
    Return type:
    +

    Network or None

    +
    +
    +
    + +
    +
    +validate()[source]
    +

    Validate name

    +
    + +
    + +
    +
    +

    MEDfl.NetManager.node module

    +
    +
    +class MEDfl.NetManager.node.Node(name: str, train: int, test_fraction: float = 0.2, engine=<sqlalchemy.engine.base.Connection object>)[source]
    +

    Bases: object

    +

    A class representing a node in the network.

    +
    +
    +name
    +

    The name of the node.

    +
    +
    Type:
    +

    str

    +
    +
    +
    + +
    +
    +train
    +

    An integer flag representing whether the node is used for training (1) or testing (0).

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +test_fraction
    +

    The fraction of data used for testing when train=1. Default is 0.2.

    +
    +
    Type:
    +

    float, optional

    +
    +
    +
    + +
    +
    +__init__(name: str, train: int, test_fraction: float = 0.2, engine=<sqlalchemy.engine.base.Connection object>)[source]
    +

    Initialize a Node instance.

    +
    +
    Parameters:
    +
      +
    • name (str) – The name of the node.

    • +
    • train (int) – An integer flag representing whether the node is used for training (1) or testing (0).

    • +
    • test_fraction (float, optional) – The fraction of data used for testing when train=1. Default is 0.2.

    • +
    +
    +
    +
    + +
    +
    +assign_dataset(dataset_name: str)[source]
    +

    Assigning existing dataSet to node +:param dataset_name: The name of the dataset to assign. +:type dataset_name: str

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +check_dataset_compatibility(data_df)[source]
    +

    Check if the dataset is compatible with the master dataset. +:param data_df: The dataset to check. +:type data_df: DataFrame

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +create_node(NetId: int)[source]
    +

    Create a node in the database. +:param NetId: The ID of the network to which the node belongs. +:type NetId: int

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +delete_node()[source]
    +

    Delete the node from the database.

    +
    + +
    +
    +get_dataset(column_name: str | None = None)[source]
    +

    Get the dataset for the node based on the given column name. +:param column_name: The column name to filter the dataset. Default is None. +:type column_name: str, optional

    +
    +
    Returns:
    +

    The dataset associated with the node.

    +
    +
    Return type:
    +

    DataFrame

    +
    +
    +
    + +
    +
    +list_alldatasets()[source]
    +

    List all datasets associated with the node. +:returns: A DataFrame containing information about all datasets associated with the node. +:rtype: DataFrame

    +
    + +
    +
    +static list_allnodes()[source]
    +

    List all nodes in the database. +:returns: A DataFrame containing information about all nodes in the database. +:rtype: DataFrame

    +
    + +
    +
    +unassign_dataset(dataset_name: str)[source]
    +

    unssigning existing dataSet to node +:param dataset_name: The name of the dataset to assign. +:type dataset_name: str

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +update_node()[source]
    +

    Update the node information (not implemented).

    +
    + +
    +
    +upload_dataset(dataset_name: str, path_to_csv: str = 'D:\\ESI\\3CS\\PFE\\last_year\\Code\\MEDfl\\notebooks\\eicu_test.csv')[source]
    +

    Upload the dataset to the database for the node. +:param dataset_name: The name of the dataset. +:type dataset_name: str +:param path_to_csv: Path to the CSV file containing the dataset. Default is the path in params. +:type path_to_csv: str, optional

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +validate()[source]
    +

    Validate name, train, test_fraction

    +
    + +
    + +
    +
    +

    Module contents

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/Medfl.html b/docs/_build/Medfl.html new file mode 100644 index 0000000..52c3f77 --- /dev/null +++ b/docs/_build/Medfl.html @@ -0,0 +1,362 @@ + + + + + + + MEDfl package — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    MEDfl package

    +
    +

    Subpackages

    +
    + +
    +
    +
    +

    Module contents

    +
    +
    + + +
    +
    + +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/client.html b/docs/_build/_modules/Medfl/LearningManager/client.html new file mode 100644 index 0000000..4286687 --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/client.html @@ -0,0 +1,262 @@ + + + + + + MEDfl.LearningManager.client — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.client

    +#!/usr/bin/env python3
    +import flwr as fl
    +from opacus import PrivacyEngine
    +from torch.utils.data import DataLoader
    +
    +from .model import Model
    +from .utils import params
    +import torch
    +
    +
    +[docs] +class FlowerClient(fl.client.NumPyClient): + """ + FlowerClient class for creating MEDfl clients. + + Attributes: + cid (str): Client ID. + local_model (Model): Local model of the federated learning network. + trainloader (DataLoader): DataLoader for training data. + valloader (DataLoader): DataLoader for validation data. + diff_priv (bool): Flag indicating whether to use differential privacy. + """ +
    +[docs] + def __init__(self, cid: str, local_model: Model, trainloader: DataLoader, valloader: DataLoader, diff_priv: bool = params["diff_privacy"]): + """ + Initializes the FlowerClient instance. + + Args: + cid (str): Client ID. + local_model (Model): Local model of the federated learning network. + trainloader (DataLoader): DataLoader for training data. + valloader (DataLoader): DataLoader for validation data. + diff_priv (bool): Flag indicating whether to use differential privacy. + """ + self.cid = cid + self.local_model = local_model + self.trainloader = trainloader + self.valloader = valloader + self.device = torch.device(f"cuda:{int(self.cid) % 4}" if torch.cuda.is_available() else "cpu") + self.local_model.model.to(self.device) + self.privacy_engine = PrivacyEngine(secure_mode=False) + self.diff_priv = diff_priv + self.epsilons = [] + self.accuracies = [] + self.losses = [] + if self.diff_priv: + model, optimizer, self.trainloader = self.privacy_engine.make_private_with_epsilon( + module=self.local_model.model.train(), + optimizer=self.local_model.optimizer, + data_loader=self.trainloader, + epochs=params["train_epochs"], + target_epsilon=params["EPSILON"], + target_delta=params["DELTA"], + max_grad_norm=params["MAX_GRAD_NORM"], + ) + setattr(self.local_model, "model", model) + setattr(self.local_model, "optimizer", optimizer) + self.validate()
    + + +
    +[docs] + def validate(self): + """Validates cid, local_model, trainloader, valloader.""" + if not isinstance(self.cid, str): + raise TypeError("cid argument must be a string") + + if not isinstance(self.local_model, Model): + raise TypeError("local_model argument must be a MEDfl.LearningManager.model.Model") + + if not isinstance(self.trainloader, DataLoader): + raise TypeError("trainloader argument must be a torch.utils.data.dataloader") + + if not isinstance(self.valloader, DataLoader): + raise TypeError("valloader argument must be a torch.utils.data.dataloader") + + if not isinstance(self.diff_priv, bool): + raise TypeError("diff_priv argument must be a bool")
    + + +
    +[docs] + def get_parameters(self, config): + """ + Returns the current parameters of the local model. + + Args: + config: Configuration information. + + Returns: + Numpy array: Parameters of the local model. + """ + print(f"[Client {self.cid}] get_parameters") + return self.local_model.get_parameters()
    + + +
    +[docs] + def fit(self, parameters, config): + """ + Fits the local model to the received parameters using federated learning. + + Args: + parameters: Parameters received from the server. + config: Configuration information. + + Returns: + Tuple: Parameters of the local model, number of training examples, and privacy information. + """ + print(f"[Client {self.cid}] fit, config: {config}") + self.local_model.set_parameters(parameters) + for _ in range(params["train_epochs"]): + epsilon = self.local_model.train( + self.trainloader, + epoch=_, + device=self.device, + privacy_engine=self.privacy_engine, + diff_priv=self.diff_priv, + ) + self.epsilons.append(epsilon) + print(f"epsilon of client {self.cid} : eps = {epsilon}") + return ( + self.local_model.get_parameters(), + len(self.trainloader), + {"epsilon": epsilon}, + )
    + + +
    +[docs] + def evaluate(self, parameters, config): + """ + Evaluates the local model on the validation data and returns the loss and accuracy. + + Args: + parameters: Parameters received from the server. + config: Configuration information. + + Returns: + Tuple: Loss, number of validation examples, and accuracy information. + """ + print(f"[Client {self.cid}] evaluate, config: {config}") + self.local_model.set_parameters(parameters) + loss, accuracy = self.local_model.evaluate( + self.valloader, device=self.device + ) + self.losses.append(loss) + self.accuracies.append(accuracy) + return float(loss), len(self.valloader), {"accuracy": float(accuracy)}
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/dynamicModal.html b/docs/_build/_modules/Medfl/LearningManager/dynamicModal.html new file mode 100644 index 0000000..89b94e6 --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/dynamicModal.html @@ -0,0 +1,424 @@ + + + + + + MEDfl.LearningManager.dynamicModal — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.dynamicModal

    +import torch
    +import torch.nn as nn
    +from sklearn.svm import SVC
    +
    +
    +[docs] +class DynamicModel: + """DynamicModel class for creating various types of neural network models.""" + + # Create a binary classifier model +
    +[docs] + @staticmethod + def create_binary_classifier(input_dim, hidden_dims, output_dim, activation='relu', dropout_rate=0.0, + batch_norm=False, use_gpu=False): + """ + Creates a binary classifier neural network model with customizable architecture. + + Args: + input_dim (int): Dimension of the input data. + hidden_dims (List[int]): List of dimensions for hidden layers. + output_dim (int): Dimension of the output (number of classes). + activation (str, optional): Activation function for hidden layers. Default is 'relu'. + dropout_rate (float, optional): Dropout rate for regularization. Default is 0.0 (no dropout). + batch_norm (bool, optional): Whether to apply batch normalization. Default is False. + use_gpu (bool, optional): Whether to use GPU acceleration. Default is False. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + layers = [] + + for i in range(len(hidden_dims)): + if i == 0: + layers.append(nn.Linear(input_dim, hidden_dims[0])) + else: + layers.append(nn.Linear(hidden_dims[i - 1], hidden_dims[i])) + + if batch_norm: + layers.append(nn.BatchNorm1d(hidden_dims[i])) + + activation_layer = nn.ReLU() if activation == 'relu' else nn.Sigmoid() + layers.append(activation_layer) + + if dropout_rate > 0.0: + layers.append(nn.Dropout(dropout_rate)) + + layers.append(nn.Linear(hidden_dims[-1], output_dim)) + layers.append(nn.Sigmoid()) + + model = nn.Sequential(*layers) + + if use_gpu: + model = model.cuda() + + return model
    + + + # Create a multi-class classifier model +
    +[docs] + @staticmethod + def create_multiclass_classifier(input_dim, hidden_dims, output_dim, activation='relu', dropout_rate=0.0, + batch_norm=False, use_gpu=False): + """ + Creates a multiclass classifier neural network model with customizable architecture. + + Args: + input_dim (int): Dimension of the input data. + hidden_dims (List[int]): List of dimensions for hidden layers. + output_dim (int): Dimension of the output (number of classes). + activation (str, optional): Activation function for hidden layers. Default is 'relu'. + dropout_rate (float, optional): Dropout rate for regularization. Default is 0.0 (no dropout). + batch_norm (bool, optional): Whether to apply batch normalization. Default is False. + use_gpu (bool, optional): Whether to use GPU acceleration. Default is False. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + layers = [] + + for i in range(len(hidden_dims)): + if i == 0: + layers.append(nn.Linear(input_dim, hidden_dims[0])) + else: + layers.append(nn.Linear(hidden_dims[i - 1], hidden_dims[i])) + + if batch_norm: + layers.append(nn.BatchNorm1d(hidden_dims[i])) + + activation_layer = nn.ReLU() if activation == 'relu' else nn.Sigmoid() + layers.append(activation_layer) + + if dropout_rate > 0.0: + layers.append(nn.Dropout(dropout_rate)) + + layers.append(nn.Linear(hidden_dims[-1], output_dim)) + layers.append(nn.LogSoftmax(dim=1)) + + model = nn.Sequential(*layers) + + if use_gpu: + model = model.cuda() + + return model
    + + + # Create a linear regressor model +
    +[docs] + @staticmethod + def create_linear_regressor(input_dim, output_dim, use_gpu=False): + """ + Creates a linear regressor neural network model. + + Args: + input_dim (int): Dimension of the input data. + output_dim (int): Dimension of the output. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + class LinearRegressionModel(nn.Module): + def __init__(self): + super(LinearRegressionModel, self).__init__() + self.linear = nn.Linear(input_dim, output_dim) + + def forward(self, x): + return self.linear(x) + + model = LinearRegressionModel() + + if use_gpu: + model = model.cuda() + + return model
    + + + # Create a logistic regressor model +
    +[docs] + @staticmethod + def create_logistic_regressor(input_dim, use_gpu=False): + """ + Creates a logistic regressor neural network model. + + Args: + input_dim (int): Dimension of the input data. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + class LogisticRegressionModel(nn.Module): + def __init__(self): + super(LogisticRegressionModel, self).__init__() + self.linear = nn.Linear(input_dim, 1) + + def forward(self, x): + return torch.sigmoid(self.linear(x)) + + model = LogisticRegressionModel() + + if use_gpu: + model = model.cuda() + + return model
    + + +
    +[docs] + @staticmethod + def create_convolutional_neural_network(input_channels, output_channels, kernel_size, use_gpu=False): + """ + Creates a convolutional neural network (CNN) model. + + Args: + input_channels (int): Number of input channels. + output_channels (int): Number of output channels. + kernel_size (int): Size of the convolutional kernel. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + model = nn.Sequential( + nn.Conv2d(input_channels, output_channels, kernel_size), + nn.ReLU(), + nn.MaxPool2d(2) + ) + + if use_gpu: + model = model.cuda() + + return model
    + + +
    +[docs] + @staticmethod + def create_recurrent_neural_network(input_size, hidden_size, use_gpu=False): + """ + Creates a recurrent neural network (RNN) model. + + Args: + input_size (int): Size of the input. + hidden_size (int): Size of the hidden layer. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + model = nn.RNN(input_size, hidden_size, batch_first=True) + + if use_gpu: + model = model.cuda() + + return model
    + + +
    +[docs] + @staticmethod + def create_lstm_network(input_size, hidden_size, use_gpu=False): + """ + Creates a Long Short-Term Memory (LSTM) network model. + + Args: + input_size (int): Size of the input layer. + hidden_size (int): Size of the hidden layer. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + + model = nn.LSTM(input_size, hidden_size, batch_first=True) + + if use_gpu: + model = model.cuda() + + return model
    + + + # Create the dynamic model +
    +[docs] + def create_model(self, model_type: str, params_dict={}) -> torch.nn.Module: + """ + Create a specific type of model dynamically based on the given parameters. + + Args: + model_type (str): Type of the model to create ('Binary Classifier', 'Multiclass Classifier', 'Linear Regressor', 'Logistic Regressor', 'SVM', 'Neural Network Classifier', 'Convolutional Neural Network', 'Recurrent Neural Network', 'LSTM Network', 'Autoencoder'). + params_dict (dict): Dictionary containing parameters for model creation. + + Returns: + torch.nn.Module: Created PyTorch model. + """ + if model_type == 'Binary Classifier': + return self.create_binary_classifier( + params_dict['input_dim'], params_dict['hidden_dims'], + params_dict['output_dim'], params_dict.get('activation', 'relu'), + params_dict.get('dropout_rate', 0.0), params_dict.get('batch_norm', False), + params_dict.get('use_gpu', False) + ) + elif model_type == 'Multiclass Classifier': + return self.create_multiclass_classifier( + params_dict['input_dim'], params_dict['hidden_dims'], + params_dict['output_dim'], params_dict.get('activation', 'relu'), + params_dict.get('dropout_rate', 0.0), params_dict.get('batch_norm', False), + params_dict.get('use_gpu', False) + ) + elif model_type == 'Linear Regressor': + return self.create_linear_regressor( + params_dict['input_dim'], params_dict['output_dim'], + params_dict.get('use_gpu', False) + ) + elif model_type == 'Logistic Regressor': + return self.create_logistic_regressor( + params_dict['input_dim'], params_dict.get('use_gpu', False) + ) + elif model_type == 'Neural Network Classifier': + return self.create_neural_network_classifier( + params_dict['input_dim'], params_dict['output_dim'], + params_dict['hidden_dims'], params_dict.get('activation', 'relu'), + params_dict.get('dropout_rate', 0.0), params_dict.get('batch_norm', False), + params_dict.get('num_layers', 2), params_dict.get('use_gpu', False) + ) + elif model_type == 'Convolutional Neural Network': + return self.create_convolutional_neural_network( + params_dict['input_channels'], params_dict['output_channels'], + params_dict['kernel_size'], params_dict.get('use_gpu', False) + ) + elif model_type == 'Recurrent Neural Network': + return self.create_recurrent_neural_network( + params_dict['input_size'], params_dict['hidden_size'], + params_dict.get('use_gpu', False) + ) + elif model_type == 'LSTM Network': + return self.create_lstm_network( + params_dict['input_size'], params_dict['hidden_size'], + params_dict.get('use_gpu', False) + ) + elif model_type == 'Autoencoder': + return self.create_autoencoder( + params_dict['input_size'], params_dict['encoder_hidden_size'], + params_dict.get('use_gpu', False) + ) + else: + raise ValueError("Invalid model type provided")
    +
    + + + + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/federated_dataset.html b/docs/_build/_modules/Medfl/LearningManager/federated_dataset.html new file mode 100644 index 0000000..37059cf --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/federated_dataset.html @@ -0,0 +1,179 @@ + + + + + + MEDfl.LearningManager.federated_dataset — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.federated_dataset

    +from scripts.base import *
    +from MEDfl.NetManager.net_helper import *
    +from MEDfl.NetManager.net_manager_queries import *
    +
    +
    +
    +[docs] +class FederatedDataset: +
    +[docs] + def __init__( + self, + name: str, + train_nodes: list, + test_nodes: list, + trainloaders: list, + valloaders: list, + testloaders: list, + ): + """ + Represents a Federated Dataset. + + :param name: Name of the Federated Dataset. + :param train_nodes: List of train nodes. + :param test_nodes: List of test nodes. + :param trainloaders: List of train data loaders. + :param valloaders: List of validation data loaders. + :param testloaders: List of test data loaders. + """ + self.name = name + self.train_nodes = train_nodes + self.test_nodes = test_nodes + self.trainloaders = trainloaders + self.valloaders = valloaders + self.testloaders = testloaders + self.size = len(self.trainloaders[0].dataset[0][0])
    + + +
    +[docs] + def create(self, FLsetupId: int): + """ + Create a new Federated Dataset in the database. + + :param FLsetupId: The FLsetup ID associated with the Federated Dataset. + """ + query_params = {"name": self.name, "FLsetupId": FLsetupId} + fedDataId = get_feddataset_id_from_name(self.name) + if fedDataId : + self.id = fedDataId + else: + my_eng.execute(text(INSERT_FLDATASET_QUERY), query_params) + self.id = get_feddataset_id_from_name(self.name)
    + + + +
    +[docs] + def update(self, FLpipeId: int, FedId: int): + """ + Update the FLpipe ID associated with the Federated Dataset in the database. + + :param FLpipeId: The new FLpipe ID to be updated. + :param FedId: The Federated Dataset ID. + """ + query_params = {"FLpipeId": FLpipeId, "FedId": FedId} + my_eng.execute(text(UPDATE_FLDATASET_QUERY), **query_params)
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/flpipeline.html b/docs/_build/_modules/Medfl/LearningManager/flpipeline.html new file mode 100644 index 0000000..8dfd867 --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/flpipeline.html @@ -0,0 +1,312 @@ + + + + + + MEDfl.LearningManager.flpipeline — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.flpipeline

    +import datetime
    +from typing import List
    +import json
    +import pandas as pd
    +
    +
    +# File: create_query.py
    +from sqlalchemy import text
    +from torch.utils.data import DataLoader, TensorDataset
    +
    +from MEDfl.LearningManager.server import FlowerServer
    +from MEDfl.LearningManager.utils import params, test
    +from scripts.base import my_eng
    +from MEDfl.NetManager.net_helper import get_flpipeline_from_name
    +from MEDfl.NetManager.net_manager_queries import (CREATE_FLPIPELINE_QUERY,
    +                                                  DELETE_FLPIPELINE_QUERY , CREATE_TEST_RESULTS_QUERY)
    +
    +
    +
    +[docs] +def create_query(name, description, creation_date, result): + query = text( + f"INSERT INTO FLpipeline(name, description, creation_date, results) " + f"VALUES ('{name}', '{description}', '{creation_date}', '{result}')" + ) + return query
    + + + + +
    +[docs] +class FLpipeline: + """ + FLpipeline class for managing Federated Learning pipelines. + + Attributes: + name (str): The name of the FLpipeline. + description (str): A description of the FLpipeline. + server (FlowerServer): The FlowerServer object associated with the FLpipeline. + + Methods: + __init__(self, name: str, description: str, server: FlowerServer) -> None: + Initialize FLpipeline with the specified name, description, and server. + + + """ + + def __init__( + self, name: str, description: str, server: FlowerServer + ) -> None: + self.name = name + self.description = description + self.server = server + self.validate() + +
    +[docs] + def validate(self) -> None: + """ + Validate the name, description, and server attributes. + Raises: + TypeError: If the name is not a string, the description is not a string, + or the server is not a FlowerServer object. + """ + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.description, str): + raise TypeError("description argument must be a string") + + if not isinstance(self.server, FlowerServer): + raise TypeError("server argument must be a FlowerServer")
    + + +
    +[docs] + def create(self, result: str) -> None: + """ + Create a new FLpipeline entry in the database with the given result. + + Args: + result (str): The result string to store in the database. + + """ + creation_date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + query = CREATE_FLPIPELINE_QUERY.format( + name=self.name, + description=self.description, + creation_date=creation_date, + result=result, + ) + my_eng.execute(text(query)) + self.id = get_flpipeline_from_name(self.name) + try: + self.server.fed_dataset.update( + FLpipeId=self.id, FedId=self.server.fed_dataset.id + ) + except: + pass
    + + +
    +[docs] + def delete(self) -> None: + """ + Delete the FLpipeline entry from the database based on its name. + + Note: This is a placeholder method and needs to be implemented based on your specific database setup. + + """ + # Placeholder code for deleting the FLpipeline entry from the database based on the name. + # You need to implement the actual deletion based on your database setup. + my_eng.execute(DELETE_FLPIPELINE_QUERY.format(self.name))
    + + +
    +[docs] + def test_by_node(self, node_name: str, test_frac=1) -> dict: + """ + Test the FLpipeline by node with the specified test_frac. + + Args: + node_name (str): The name of the node to test. + test_frac (float, optional): The fraction of the test data to use. Default is 1. + + Returns: + dict: A dictionary containing the node name and the classification report. + + """ + idx = self.server.fed_dataset.test_nodes.index(node_name) + global_model, test_loader = ( + self.server.global_model, + self.server.fed_dataset.testloaders[idx], + ) + test_data = test_loader.dataset + test_data = TensorDataset( + test_data[: int(test_frac * len(test_data))][0], + test_data[: int(test_frac * len(test_data))][1], + ) + test_loader = DataLoader( + test_data, batch_size=params["test_batch_size"] + ) + classification_report = test( + model=global_model.model, test_loader=test_loader + ) + return { + "node_name": node_name, + "classification_report": str(classification_report), + }
    + + +
    +[docs] + def auto_test(self, test_frac=1) -> List[dict]: + """ + Automatically test the FLpipeline on all nodes with the specified test_frac. + + Args: + test_frac (float, optional): The fraction of the test data to use. Default is 1. + + Returns: + List[dict]: A list of dictionaries containing the node names and the classification reports. + + """ + result = [ + self.test_by_node(node, test_frac) + for node in self.server.fed_dataset.test_nodes + ] + self.create("\n".join(str(res).replace("'", '"') for res in result)) + + # stockage des resultats des tests + for entry in result: + node_name = entry['node_name'] + classification_report_str = entry['classification_report'] + + # Convert the 'classification_report' string to a dictionary + classification_report_dict = json.loads(classification_report_str.replace("'", "\"")) + try: + # Insert record into the 'testResults' table + query = CREATE_TEST_RESULTS_QUERY.format( + pipelineId = self.id, + nodeName = node_name , + confusion_matrix = json.dumps(classification_report_dict['confusion matrix']), + accuracy =classification_report_dict['Accuracy'] , + sensivity = classification_report_dict['Sensitivity/Recall'] , + ppv = classification_report_dict['PPV/Precision'] , + npv= classification_report_dict['NPV'] , + f1score= classification_report_dict['F1-score'] , + fpr= classification_report_dict['False positive rate'] , + tpr= classification_report_dict['True positive rate'] + ) + my_eng.execute(text(query)) + except Exception as e: + # This block will catch any other exceptions + print(f"An unexpected error occurred: {e}") + + + + return result
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/model.html b/docs/_build/_modules/Medfl/LearningManager/model.html new file mode 100644 index 0000000..e6c903c --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/model.html @@ -0,0 +1,340 @@ + + + + + + MEDfl.LearningManager.model — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.model

    +#!/usr/bin/env python3
    +# froked from https://github.com/pythonlessons/mltu/blob/main/mltu/torch/model.py
    +
    +import typing
    +from collections import OrderedDict
    +from typing import Dict, List, Optional, Tuple
    +
    +import numpy as np
    +import torch
    +import torch.nn as nn
    +from sklearn.metrics import accuracy_score
    +
    +from .utils import params
    +
    +
    +
    +[docs] +class Model: + """ + Model class for training and testing PyTorch neural networks. + + Attributes: + model (torch.nn.Module): PyTorch neural network. + optimizer (torch.optim.Optimizer): PyTorch optimizer. + criterion (typing.Callable): Loss function. + """ + +
    +[docs] + def __init__( + self, + model: torch.nn.Module, + optimizer: torch.optim.Optimizer, + criterion: typing.Callable, + ) -> None: + """ + Initialize Model class with the specified model, optimizer, and criterion. + + Args: + model (torch.nn.Module): PyTorch neural network. + optimizer (torch.optim.Optimizer): PyTorch optimizer. + criterion (typing.Callable): Loss function. + """ + self.model = model + self.optimizer = optimizer + self.criterion = criterion + # Get device on which model is running + self.validate()
    + + +
    +[docs] + def validate(self) -> None: + """ + Validate model and optimizer. + """ + if not isinstance(self.model, torch.nn.Module): + raise TypeError("model argument must be a torch.nn.Module") + + if not isinstance(self.optimizer, torch.optim.Optimizer): + raise TypeError( + "optimizer argument must be a torch.optim.Optimizer" + )
    + + +
    +[docs] + def get_parameters(self) -> List[np.ndarray]: + """ + Get the parameters of the model as a list of NumPy arrays. + + Returns: + List[np.ndarray]: The parameters of the model as a list of NumPy arrays. + """ + return [ + val.cpu().numpy() for _, val in self.model.state_dict().items() + ]
    + + +
    +[docs] + def set_parameters(self, parameters: List[np.ndarray]) -> None: + """ + Set the parameters of the model from a list of NumPy arrays. + + Args: + parameters (List[np.ndarray]): The parameters to be set. + """ + params_dict = zip(self.model.state_dict().keys(), parameters) + state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) + self.model.load_state_dict(state_dict, strict=True)
    + + +
    +[docs] + def train( + self, train_loader, epoch, device, privacy_engine, diff_priv=False + ) -> float: + """ + Train the model on the given train_loader for one epoch. + + Args: + train_loader: The data loader for training data. + epoch (int): The current epoch number. + device: The device on which to perform the training. + privacy_engine: The privacy engine used for differential privacy (if enabled). + diff_priv (bool, optional): Whether differential privacy is used. Default is False. + + Returns: + float: The value of epsilon used in differential privacy. + """ + self.model.train() + epsilon = 0 + losses = [] + top1_acc = [] + + for i, (X_train, y_train) in enumerate(train_loader): + self.optimizer.zero_grad() + + # compute output + y_hat = torch.squeeze(self.model(X_train), 1) + loss = self.criterion(y_hat, y_train) + + preds = np.argmax(y_hat.detach().cpu().numpy(), axis=0) + labels = y_train.detach().cpu().numpy() + + # measure accuracy and record loss + acc = (preds == labels).mean() + + losses.append(loss.item()) + top1_acc.append(acc) + + loss.backward() + self.optimizer.step() + + if diff_priv: + epsilon = privacy_engine.get_epsilon(params["DELTA"]) + + if (i + 1) % 10 == 0: + if diff_priv: + epsilon = privacy_engine.get_epsilon(params["DELTA"]) + print( + f"\tTrain Epoch: {epoch} \t" + f"Loss: {np.mean(losses):.6f} " + f"Acc@1: {np.mean(top1_acc) * 100:.6f} " + f"(ε = {epsilon:.2f}, δ = {params['DELTA']})" + ) + else: + print( + f"\tTrain Epoch: {epoch} \t" + f"Loss: {np.mean(losses):.6f} " + f"Acc@1: {np.mean(top1_acc) * 100:.6f}" + ) + + return epsilon
    + + +
    +[docs] + def evaluate( + self, val_loader, device=torch.device("cpu") + ) -> Tuple[float, float]: + """ + Evaluate the model on the given validation data. + + Args: + val_loader: The data loader for validation data. + device: The device on which to perform the evaluation. Default is 'cpu'. + + Returns: + Tuple[float, float]: The evaluation loss and accuracy. + """ + correct, total, loss, accuracy = 0, 0, 0.0, [] + self.model.eval() + + with torch.no_grad(): + for X_test, y_test in val_loader: + y_hat = torch.squeeze(self.model(X_test), 1) + accuracy.append(accuracy_score(y_test, y_hat.round())) + loss += self.criterion(y_hat, y_test).item() + total += y_test.size(0) + correct += np.sum( + y_hat.round().detach().numpy() == y_test.detach().numpy() + ) + + loss /= len(val_loader.dataset) + return loss, np.mean(accuracy)
    + + +
    +[docs] + @staticmethod + def save_model(model , model_name:str): + """ + Saves a PyTorch model to a file. + + Args: + model (torch.nn.Module): PyTorch model to be saved. + model_name (str): Name of the model file. + + Raises: + Exception: If there is an issue during the saving process. + + Returns: + None + """ + try: + torch.save(model, '../../notebooks/.ipynb_checkpoints/trainedModels/' + model_name + ".pth") + except Exception as e: + raise Exception(f"Error saving the model: {str(e)}")
    + + +
    +[docs] + @staticmethod + def load_model(model_name:str): + """ + Loads a PyTorch model from a file. + + Args: + model_name (str): Name of the model file to be loaded. + + Returns: + torch.nn.Module: Loaded PyTorch model. + """ + loadedModel = torch.load('../../notebooks/.ipynb_checkpoints/trainedModels/'+model_name+".pth") + return loadedModel
    +
    + + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/plot.html b/docs/_build/_modules/Medfl/LearningManager/plot.html new file mode 100644 index 0000000..46cf40b --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/plot.html @@ -0,0 +1,357 @@ + + + + + + MEDfl.LearningManager.plot — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.plot

    +import matplotlib.pyplot as plt
    +import numpy as np
    +import seaborn as sns
    +
    +from .utils import *
    +
    +# Replace this with your actual code for data collection
    +results_dict = {
    +    ("LR: 0.001, Optimizer: Adam", "accuracy"): [0.85, 0.89, 0.92, 0.94, ...],
    +    ("LR: 0.001, Optimizer: Adam", "loss"): [0.2, 0.15, 0.1, 0.08, ...],
    +    ("LR: 0.01, Optimizer: SGD", "accuracy"): [0.88, 0.91, 0.93, 0.95, ...],
    +    ("LR: 0.01, Optimizer: SGD", "loss"): [0.18, 0.13, 0.09, 0.07, ...],
    +    ("LR: 0.1, Optimizer: Adam", "accuracy"): [0.82, 0.87, 0.91, 0.93, ...],
    +    ("LR: 0.1, Optimizer: Adam", "loss"): [0.25, 0.2, 0.15, 0.12, ...],
    +}
    +"""
    +server should have:
    + #len = num of rounds
    +  self.accuracies
    +  self.losses
    +  
    +Client should have
    +  # len = num of epochs
    +  self.accuracies
    +  self.losses
    +  self.epsilons
    +  self.deltas
    +  
    +#common things : LR,SGD, Aggregation
    +  
    +"""
    +
    +
    +
    +[docs] +class AccuracyLossPlotter: + """ + A utility class for plotting accuracy and loss metrics based on experiment results. + + Args: + results_dict (dict): Dictionary containing experiment results organized by parameters and metrics. + + Attributes: + results_dict (dict): Dictionary containing experiment results organized by parameters and metrics. + parameters (list): List of unique parameters in the experiment results. + metrics (list): List of unique metrics in the experiment results. + iterations (range): Range of iterations (rounds or epochs) in the experiment. + """ + +
    +[docs] + def __init__(self, results_dict): + """ + Initialize the AccuracyLossPlotter with experiment results. + + Args: + results_dict (dict): Dictionary containing experiment results organized by parameters and metrics. + """ + self.results_dict = results_dict + self.parameters = list( + set([param[0] for param in results_dict.keys()]) + ) + self.metrics = list(set([param[1] for param in results_dict.keys()])) + self.iterations = range(1, len(list(results_dict.values())[0]) + 1)
    + + +
    +[docs] + def plot_accuracy_loss(self): + """ + Plot accuracy and loss metrics for different parameters. + """ + + plt.figure(figsize=(8, 6)) + + for param in self.parameters: + for metric in self.metrics: + key = (param, metric) + values = self.results_dict[key] + plt.plot( + self.iterations, + values, + label=f"{param} ({metric})", + marker="o", + linestyle="-", + ) + + plt.xlabel("Rounds") + plt.ylabel("Accuracy / Loss") + plt.title("Accuracy and Loss by Parameters") + plt.legend() + plt.grid(True) + plt.show()
    + + +
    +[docs] + @staticmethod + def plot_global_confusion_matrix(pipeline_name: str): + """ + Plot a global confusion matrix based on pipeline results. + + Args: + pipeline_name (str): Name of the pipeline. + + Returns: + None + """ + # Get the id of the pipeline by name + pipeline_id = get_pipeline_from_name(pipeline_name) + # get the confusion matrix pf the pipeline + confusion_matrix = get_pipeline_confusion_matrix(pipeline_id) + + # Extracting confusion matrix values + TP = confusion_matrix['TP'] + FP = confusion_matrix['FP'] + FN = confusion_matrix['FN'] + TN = confusion_matrix['TN'] + + # Creating a matrix for visualization + matrix = [[TN, FP], + [FN, TP]] + + # Plotting the confusion matrix as a heatmap + plt.figure(figsize=(6, 4)) + sns.heatmap(matrix, annot=True, fmt='d', cmap='Blues', + xticklabels=['Predicted Negative', 'Predicted Positive'], + yticklabels=['Actual Negative', 'Actual Positive']) + plt.title('Global Confusion Matrix') + plt.xlabel('Predicted label') + plt.ylabel('True label') + plt.tight_layout() + + # Display the confusion matrix heatmap + plt.show()
    + + +
    +[docs] + @staticmethod + def plot_confusion_Matrix_by_node(node_name: str, pipeline_name: str): + """ + Plot a confusion matrix for a specific node in the pipeline. + + Args: + node_name (str): Name of the node. + pipeline_name (str): Name of the pipeline. + + Returns: + None + """ + + # Get the id of the pipeline by name + pipeline_id = get_pipeline_from_name(pipeline_name) + # get the confusion matrix pf the pipeline + confusion_matrix = get_node_confusion_matrix( + pipeline_id, node_name=node_name) + + # Extracting confusion matrix values + TP = confusion_matrix['TP'] + FP = confusion_matrix['FP'] + FN = confusion_matrix['FN'] + TN = confusion_matrix['TN'] + + # Creating a matrix for visualization + matrix = [[TN, FP], + [FN, TP]] + + # Plotting the confusion matrix as a heatmap + plt.figure(figsize=(6, 4)) + sns.heatmap(matrix, annot=True, fmt='d', cmap='Blues', + xticklabels=['Predicted Negative', 'Predicted Positive'], + yticklabels=['Actual Negative', 'Actual Positive']) + plt.title('Confusion Matrix of node: '+node_name) + plt.xlabel('Predicted label') + plt.ylabel('True label') + plt.tight_layout() + + # Display the confusion matrix heatmap + plt.show() + return
    + + +
    +[docs] + @staticmethod + def plot_classification_report(pipeline_name: str): + """ + Plot a comparison of classification report metrics between nodes. + + Args: + pipeline_name (str): Name of the pipeline. + + Returns: + None + """ + + colors = ['#FF5733', '#6A5ACD', '#3CB371', '#FFD700', '#FFA500', '#8A2BE2', '#00FFFF', '#FF00FF', '#A52A2A', '#00FF00'] + + # Get the id of the pipeline by name + pipeline_id = get_pipeline_from_name(pipeline_name) + + pipeline_results = get_pipeline_result(pipeline_id) + + nodesList = pipeline_results['nodename'] + classificationReports = [] + + for index, node in enumerate(nodesList): + classificationReports.append({ + 'Accuracy': pipeline_results['accuracy'][index], + 'Sensitivity/Recall': pipeline_results['sensivity'][index], + 'PPV/Precision': pipeline_results['ppv'][index], + 'NPV': pipeline_results['npv'][index], + 'F1-score': pipeline_results['f1score'][index], + 'False positive rate': pipeline_results['fpr'][index], + 'True positive rate': pipeline_results['tpr'][index] + }) + + metric_labels = list(classificationReports[0].keys()) # Assuming both reports have the same keys + + # Set the positions of the bars on the x-axis + x = np.arange(len(metric_labels)) + + # Set the width of the bars + width = 0.35 + + plt.figure(figsize=(12, 6)) + + for index, report in enumerate(classificationReports): + metric = list(report.values()) + plt.bar(x + (index - len(nodesList) / 2) * width / len(nodesList), metric, width / len(nodesList), + label=nodesList[index], color=colors[index % len(colors)]) + + # Adding labels, title, and legend + plt.xlabel('Metrics') + plt.ylabel('Values') + plt.title('Comparison of Classification Report Metrics between Nodes') + plt.xticks(ticks=x, labels=metric_labels, rotation=45) + plt.legend() + + # Show plot + plt.tight_layout() + plt.show() + + return
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/server.html b/docs/_build/_modules/Medfl/LearningManager/server.html new file mode 100644 index 0000000..ecd038b --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/server.html @@ -0,0 +1,300 @@ + + + + + + MEDfl.LearningManager.server — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.server

    +#!/usr/bin/env python3
    +
    +import copy
    +from typing import Dict, Optional, Tuple
    +
    +import flwr as fl
    +import torch
    +
    +from .client import FlowerClient
    +from .federated_dataset import FederatedDataset
    +from .model import Model
    +from .strategy import Strategy
    +
    +
    +
    +[docs] +class FlowerServer: + """ + A class representing the central server for Federated Learning using Flower. + + Attributes: + global_model (Model): The global model that will be federated among clients. + strategy (Strategy): The strategy used for federated learning, specifying communication and aggregation methods. + num_rounds (int): The number of federated learning rounds to perform. + num_clients (int): The number of clients participating in the federated learning process. + fed_dataset (FederatedDataset): The federated dataset used for training and evaluation. + diff_priv (bool): Whether differential privacy is used during the federated learning process. + accuracies (List[float]): A list to store the accuracy of the global model during each round. + losses (List[float]): A list to store the loss of the global model during each round. + flower_clients (List[FlowerClient]): A list to store the FlowerClient objects representing individual clients. + + """ + +
    +[docs] + def __init__( + self, + global_model: Model, + strategy: Strategy, + num_rounds: int, + num_clients: int, + fed_dataset: FederatedDataset, + diff_privacy: bool = False, + client_resources: Optional[Dict[str, float]] = {'num_cpus': 1, 'num_gpus': 0.0} + ) -> None: + """ + Initialize a FlowerServer object with the specified parameters. + + Args: + global_model (Model): The global model that will be federated among clients. + strategy (Strategy): The strategy used for federated learning, specifying communication and aggregation methods. + num_rounds (int): The number of federated learning rounds to perform. + num_clients (int): The number of clients participating in the federated learning process. + fed_dataset (FederatedDataset): The federated dataset used for training and evaluation. + diff_privacy (bool, optional): Whether differential privacy is used during the federated learning process. + Default is False. + """ + self.device = torch.device( + f"cuda" if torch.cuda.is_available() else "cpu" + ) + self.global_model = global_model + self.params = global_model.get_parameters() + self.global_model.model = global_model.model.to(self.device) + self.num_rounds = num_rounds + self.num_clients = num_clients + self.fed_dataset = fed_dataset + self.strategy = strategy + self.client_resources = client_resources + setattr( + self.strategy.strategy_object, + "min_available_clients", + self.num_clients, + ) + setattr( + self.strategy.strategy_object, + "initial_parameters", + fl.common.ndarrays_to_parameters(self.params), + ) + setattr(self.strategy.strategy_object, "evaluate_fn", self.evaluate) + self.fed_dataset = fed_dataset + self.diff_priv = diff_privacy + self.accuracies = [] + self.losses = [] + self.flower_clients = [] + self.validate()
    + + +
    +[docs] + def validate(self) -> None: + """Validate global_model, strategy, num_clients, num_rounds, fed_dataset, diff_privacy""" + if not isinstance(self.global_model, Model): + raise TypeError("global_model argument must be a Model instance") + + if not isinstance(self.strategy, Strategy): + raise TypeError("strategy argument must be a Strategy instance") + + if not isinstance(self.num_clients, int): + raise TypeError("num_clients argument must be an int") + + if not isinstance(self.num_rounds, int): + raise TypeError("num_rounds argument must be an int") + + if not isinstance(self.diff_priv, bool): + raise TypeError("diff_priv argument must be a bool")
    + + +
    +[docs] + def client_fn(self, cid) -> FlowerClient: + """ + Return a FlowerClient object for a specific client ID. + + Args: + cid: The client ID. + + Returns: + FlowerClient: A FlowerClient object representing the individual client. + """ + device = torch.device( + f"cuda:{int(cid) % 4}" if torch.cuda.is_available() else "cpu" + ) + client_model = copy.deepcopy(self.global_model) + trainloader = self.fed_dataset.trainloaders[int(cid)] + valloader = self.fed_dataset.valloaders[int(cid)] + # this helps in making plots + client = FlowerClient( + cid, client_model, trainloader, valloader, self.diff_priv + ) + self.flower_clients.append(client) + return client
    + + +
    +[docs] + def evaluate( + self, + server_round: int, + parameters: fl.common.NDArrays, + config: Dict[str, fl.common.Scalar], + ) -> Optional[Tuple[float, Dict[str, fl.common.Scalar]]]: + """ + Evaluate the global model on the validation dataset and update the accuracies and losses. + + Args: + server_round (int): The current round of the federated learning process. + parameters (fl.common.NDArrays): The global model parameters. + config (Dict[str, fl.common.Scalar]): Configuration dictionary. + + Returns: + Optional[Tuple[float, Dict[str, fl.common.Scalar]]]: The evaluation loss and accuracy. + """ + testloader = self.fed_dataset.valloaders[0] + self.global_model.set_parameters( + parameters + ) # Update model with the latest parameters + loss, accuracy = self.global_model.evaluate(testloader, self.device) + self.losses.append(loss) + self.accuracies.append(accuracy) + print(f"Server-side evaluation loss {loss} / accuracy {accuracy}") + return loss, {"accuracy": accuracy}
    + + +
    +[docs] + def run(self) -> None: + """ + Run the federated learning process using Flower simulation. + + Returns: + History: The history of the accuracies and losses during the training of each node + """ + # Increase the object store memory to the minimum allowed value or higher + ray_init_args = {"include_dashboard": False + , "object_store_memory": 78643200 + } + + history = fl.simulation.start_simulation( + client_fn=self.client_fn, + num_clients=self.num_clients, + config=fl.server.ServerConfig(self.num_rounds), + strategy=self.strategy.strategy_object, + ray_init_args=ray_init_args, + client_resources = self.client_resources + ) + + return history
    +
    + + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/strategy.html b/docs/_build/_modules/Medfl/LearningManager/strategy.html new file mode 100644 index 0000000..c7b8977 --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/strategy.html @@ -0,0 +1,185 @@ + + + + + + MEDfl.LearningManager.strategy — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    +
      +
    • + + +
    • +
    • +
    +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.strategy

    +
    +from collections import OrderedDict
    +from typing import Dict, List, Optional, Tuple
    +
    +import flwr as fl
    +import numpy as np
    +
    +
    +
    +
    +
    +
    +[docs] +class Strategy: + """ + A class representing a strategy for Federated Learning. + + Attributes: + name (str): The name of the strategy. Default is "FedAvg". + fraction_fit (float): Fraction of clients to use for training during each round. Default is 1.0. + fraction_evaluate (float): Fraction of clients to use for evaluation during each round. Default is 1.0. + min_fit_clients (int): Minimum number of clients to use for training during each round. Default is 2. + min_evaluate_clients (int): Minimum number of clients to use for evaluation during each round. Default is 2. + min_available_clients (int): Minimum number of available clients required to start a round. Default is 2. + initial_parameters (Optional[]): The initial parameters of the server model + Methods: + + """ + +
    +[docs] + def __init__( + self, + name: str = "FedAvg", + fraction_fit: float = 1.0, + fraction_evaluate: float = 1.0, + min_fit_clients: int = 2, + min_evaluate_clients: int = 2, + min_available_clients: int = 2, + initial_parameters = [], + evaluation_methode = "centralized" + ) -> None: + """ + Initialize a Strategy object with the specified parameters. + + Args: + name (str): The name of the strategy. Default is "FedAvg". + fraction_fit (float): Fraction of clients to use for training during each round. Default is 1.0. + fraction_evaluate (float): Fraction of clients to use for evaluation during each round. Default is 1.0. + min_fit_clients (int): Minimum number of clients to use for training during each round. Default is 2. + min_evaluate_clients (int): Minimum number of clients to use for evaluation during each round. Default is 2. + min_available_clients (int): Minimum number of available clients required to start a round. Default is 2. + initial_parameters (Optional[]): The initial parametres of the server model + evaluation_methode ( "centralized" | "distributed") + """ + self.fraction_fit = fraction_fit + self.fraction_evaluate = fraction_evaluate + self.min_fit_clients = min_fit_clients + self.min_evaluate_clients = min_evaluate_clients + self.min_available_clients = min_available_clients + self.initial_parameters = initial_parameters + self.evaluate_fn = None + self.name = name + self.strategy_object = eval( + f"fl.server.strategy.{self.name}(\ + fraction_fit={self.fraction_fit},\ + fraction_evaluate= {self.fraction_evaluate},\ + min_fit_clients= {self.min_fit_clients},\ + min_evaluate_clients= {self.min_evaluate_clients},\ + min_available_clients={self.min_available_clients},\ + initial_parameters=fl.common.ndarrays_to_parameters(self.initial_parameters),\ + evaluate_fn={self.evaluate_fn})" + )
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/LearningManager/utils.html b/docs/_build/_modules/Medfl/LearningManager/utils.html new file mode 100644 index 0000000..c3efb2a --- /dev/null +++ b/docs/_build/_modules/Medfl/LearningManager/utils.html @@ -0,0 +1,355 @@ + + + + + + MEDfl.LearningManager.utils — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.LearningManager.utils

    +#!/usr/bin/env python3
    +
    +import pkg_resources
    +import torch
    +import yaml
    +from sklearn.metrics import *
    +from yaml.loader import SafeLoader
    +
    +from scripts.base import *
    +import json
    +
    +
    +import pandas as pd
    +
    +yaml_path = pkg_resources.resource_filename(__name__, "params.yaml")
    +with open(yaml_path) as g:
    +    params = yaml.load(g, Loader=SafeLoader)
    +
    +
    +
    +[docs] +def custom_classification_report(y_true, y_pred): + """ + Compute custom classification report metrics including accuracy, sensitivity, specificity, precision, NPV, + F1-score, false positive rate, and true positive rate. + + Args: + y_true (array-like): True labels. + y_pred (array-like): Predicted labels. + + Returns: + dict: A dictionary containing custom classification report metrics. + """ + + tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel() + + # Accuracy + denominator_acc = tp + tn + fp + fn + acc = (tp + tn) / denominator_acc if denominator_acc != 0 else 0.0 + + # Sensitivity/Recall + denominator_sen = tp + fn + sen = tp / denominator_sen if denominator_sen != 0 else 0.0 + + # Specificity + denominator_sp = tn + fp + sp = tn / denominator_sp if denominator_sp != 0 else 0.0 + + # PPV/Precision + denominator_ppv = tp + fp + ppv = tp / denominator_ppv if denominator_ppv != 0 else 0.0 + +# NPV + denominator_npv = tn + fn + npv = tn / denominator_npv if denominator_npv != 0 else 0.0 + + # F1 Score + denominator_f1 = sen + ppv + f1 = 2 * (sen * ppv) / denominator_f1 if denominator_f1 != 0 else 0.0 + + # False Positive Rate + denominator_fpr = fp + tn + fpr = fp / denominator_fpr if denominator_fpr != 0 else 0.0 + + # True Positive Rate + denominator_tpr = tp + fn + tpr = tp / denominator_tpr if denominator_tpr != 0 else 0.0 + + return { + "confusion matrix": {"TP": tp, "FP": fp, "FN": fn, "TN": tn}, + "Accuracy": round(acc, 3), + "Sensitivity/Recall": round(sen, 3), + "Specificity": round(sp, 3), + "PPV/Precision": round(ppv, 3), + "NPV": round(npv, 3), + "F1-score": round(f1, 3), + "False positive rate": round(fpr, 3), + "True positive rate": round(tpr, 3), + }
    + + + +
    +[docs] +def test(model, test_loader, device=torch.device("cpu")): + """ + Evaluate a model using a test loader and return a custom classification report. + + Args: + model (torch.nn.Module): PyTorch model to evaluate. + test_loader (torch.utils.data.DataLoader): DataLoader for the test dataset. + device (torch.device, optional): Device for model evaluation. Default is "cpu". + + Returns: + dict: A dictionary containing custom classification report metrics. + """ + + model.eval() + with torch.no_grad(): + X_test, y_test = test_loader.dataset[:][0], test_loader.dataset[:][1] + y_hat = torch.squeeze(model(X_test), 1).round() + + return custom_classification_report(y_test, y_hat)
    + + + +column_map = {"object": "VARCHAR(255)", "int64": "INT", "float64": "FLOAT"} + + +
    +[docs] +def empty_db(): + """ + Empty the database by deleting records from multiple tables and resetting auto-increment counters. + + Returns: + None + """ + + # my_eng.execute(text(f"DELETE FROM {'DataSets'}")) + my_eng.execute(text(f"DELETE FROM {'Nodes'}")) + my_eng.execute(text(f"DELETE FROM {'FedDatasets'}")) + my_eng.execute(text(f"DELETE FROM {'Networks'}")) + my_eng.execute(text(f"DELETE FROM {'FLsetup'}")) + + my_eng.execute(text(f"DELETE FROM {'FLpipeline'}")) + my_eng.execute(text(f"ALTER TABLE {'Nodes'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'Networks'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'FedDatasets'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'FLsetup'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"ALTER TABLE {'FLpipeline'} AUTO_INCREMENT = 1")) + my_eng.execute(text(f"DELETE FROM {'testresults'}")) + my_eng.execute(text(f"DROP TABLE IF EXISTS {'masterdataset'}")) + my_eng.execute(text(f"DROP TABLE IF EXISTS {'datasets'}"))
    + + +
    +[docs] +def get_pipeline_from_name(name): + """ + Get the pipeline ID from its name in the database. + + Args: + name (str): Name of the pipeline. + + Returns: + int: ID of the pipeline. + """ + + NodeId = int( + pd.read_sql( + text(f"SELECT id FROM flpipeline WHERE name = '{name}'"), my_eng + ).iloc[0, 0] + ) + return NodeId
    + + +
    +[docs] +def get_pipeline_confusion_matrix(pipeline_id): + """ + Get the global confusion matrix for a pipeline based on test results. + + Args: + pipeline_id (int): ID of the pipeline. + + Returns: + dict: A dictionary representing the global confusion matrix. + """ + + data = pd.read_sql( + text(f"SELECT confusionmatrix FROM testresults WHERE pipelineid = '{pipeline_id}'"), my_eng + ) + + # Convert the column of strings into a list of dictionaries representing confusion matrices + confusion_matrices = [ + json.loads(matrix.replace("'", "\"")) for matrix in data['confusionmatrix'] + ] + + # Initialize variables for global confusion matrix + global_TP = global_FP = global_FN = global_TN = 0 + + # Iterate through each dictionary and sum the corresponding values for each category + for matrix in confusion_matrices: + global_TP += matrix['TP'] + global_FP += matrix['FP'] + global_FN += matrix['FN'] + global_TN += matrix['TN'] + + # Create a global confusion matrix as a dictionary + global_confusion_matrix = { + 'TP': global_TP, + 'FP': global_FP, + 'FN': global_FN, + 'TN': global_TN + } + # Return the list of dictionaries representing confusion matrices + return global_confusion_matrix
    + + +
    +[docs] +def get_node_confusion_matrix(pipeline_id , node_name): + """ + Get the confusion matrix for a specific node in a pipeline based on test results. + + Args: + pipeline_id (int): ID of the pipeline. + node_name (str): Name of the node. + + Returns: + dict: A dictionary representing the confusion matrix for the specified node. + """ + + data = pd.read_sql( + text(f"SELECT confusionmatrix FROM testresults WHERE pipelineid = '{pipeline_id}' AND nodename = '{node_name}'"), my_eng + ) + + # Convert the column of strings into a list of dictionaries representing confusion matrices + confusion_matrices = [ + json.loads(matrix.replace("'", "\"")) for matrix in data['confusionmatrix'] + ] + + + # Return the list of dictionaries representing confusion matrices + return confusion_matrices[0]
    + + +
    +[docs] +def get_pipeline_result(pipeline_id): + """ + Get the test results for a pipeline. + + Args: + pipeline_id (int): ID of the pipeline. + + Returns: + pandas.DataFrame: DataFrame containing test results for the specified pipeline. + """ + data = pd.read_sql( + text(f"SELECT * FROM testresults WHERE pipelineid = '{pipeline_id}'"), my_eng + ) + return data
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/NetManager/dataset.html b/docs/_build/_modules/Medfl/NetManager/dataset.html new file mode 100644 index 0000000..24a4943 --- /dev/null +++ b/docs/_build/_modules/Medfl/NetManager/dataset.html @@ -0,0 +1,222 @@ + + + + + + MEDfl.NetManager.dataset — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.NetManager.dataset

    +import pandas as pd
    +from sqlalchemy import text
    +
    +from scripts.base import my_eng
    +from .net_helper import *
    +from .net_manager_queries import (DELETE_DATASET, INSERT_DATASET,
    +                                  SELECT_ALL_DATASET_NAMES)
    +
    +
    +
    +[docs] +class DataSet: +
    +[docs] + def __init__(self, name: str, path: str, engine=None): + """ + Initialize a DataSet object. + + :param name: The name of the dataset. + :type name: str + :param path: The file path of the dataset CSV file. + :type path: str + """ + self.name = name + self.path = path + self.engine = engine if engine is not None else my_eng
    + + +
    +[docs] + def validate(self): + """ + Validate name and path attributes. + + :raises TypeError: If name or path is not a string. + """ + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.path, str): + raise TypeError("path argument must be a string")
    + + +
    +[docs] + def upload_dataset(self, NodeId=-1): + """ + Upload the dataset to the database. + + :param NodeId: The NodeId associated with the dataset. + :type NodeId: int + + Notes: + - Assumes the file at self.path is a valid CSV file. + - The dataset is uploaded to the 'DataSets' table in the database. + """ + + data_df = pd.read_csv(self.path) + nodeId = NodeId + columns = data_df.columns.tolist() + + + data_df = process_eicu(data_df) + for index, row in data_df.iterrows(): + query_1 = "INSERT INTO DataSets(DataSetName,nodeId," + "".join( + f"{x}," for x in columns + ) + query_2 = f" VALUES ('{self.name}',{nodeId}, " + "".join( + f"{is_str(data_df, row, x)}," for x in columns + ) + query = query_1[:-1] + ")" + query_2[:-1] + ")" + + self.engine.execute(text(query))
    + + +
    +[docs] + def delete_dataset(self): + """ + Delete the dataset from the database. + + Notes: + - Assumes the dataset name is unique in the 'DataSets' table. + """ + self.engine.execute(text(DELETE_DATASET), {"name": self.name})
    + + +
    +[docs] + def update_data(self): + """ + Update the data in the dataset. + + Not implemented yet. + """ + pass
    + + +
    +[docs] + @staticmethod + def list_alldatasets(engine): + """ + List all dataset names from the 'DataSets' table. + + :returns: A DataFrame containing the names of all datasets in the 'DataSets' table. + :rtype: pd.DataFrame + """ + res = pd.read_sql(text(SELECT_ALL_DATASET_NAMES), engine) + return res
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/NetManager/flsetup.html b/docs/_build/_modules/Medfl/NetManager/flsetup.html new file mode 100644 index 0000000..af2adda --- /dev/null +++ b/docs/_build/_modules/Medfl/NetManager/flsetup.html @@ -0,0 +1,447 @@ + + + + + + MEDfl.NetManager.flsetup — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.NetManager.flsetup

    +from datetime import datetime
    +
    +
    +from torch.utils.data import random_split, DataLoader, Dataset
    +
    +from MEDfl.LearningManager.federated_dataset import FederatedDataset
    +from .net_helper import *
    +from .net_manager_queries import *  # Import the sql_queries module
    +from .network import Network
    +
    +from .node import Node
    +
    +
    +
    +[docs] +class FLsetup: +
    +[docs] + def __init__(self, name: str, description: str, network: Network): + """Initialize a Federated Learning (FL) setup. + + Args: + name (str): The name of the FL setup. + description (str): A description of the FL setup. + network (Network): An instance of the Network class representing the network architecture. + """ + self.name = name + self.description = description + self.network = network + self.column_name = None + self.auto = 1 if self.column_name is not None else 0 + self.validate() + self.fed_dataset = None
    + + +
    +[docs] + def validate(self): + """Validate name, description, and network.""" + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.description, str): + raise TypeError("description argument must be a string") + + if not isinstance(self.network, Network): + raise TypeError( + "network argument must be a MEDfl.NetManager.Network " + )
    + + +
    +[docs] + def create(self): + """Create an FL setup.""" + creation_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + netid = get_netid_from_name(self.network.name) + my_eng.execute( + text(CREATE_FLSETUP_QUERY), + { + "name": self.name, + "description": self.description, + "creation_date": creation_date, + "net_id": netid, + "column_name": self.column_name, + }, + ) + self.id = get_flsetupid_from_name(self.name)
    + + +
    +[docs] + def delete(self): + """Delete the FL setup.""" + if self.fed_dataset is not None: + self.fed_dataset.delete_Flsetup(FLsetupId=self.id) + my_eng.execute(text(DELETE_FLSETUP_QUERY), {"name": self.name})
    + + +
    +[docs] + @classmethod + def read_setup(cls, FLsetupId: int): + """Read the FL setup by FLsetupId. + + Args: + FLsetupId (int): The id of the FL setup to read. + + Returns: + FLsetup: An instance of the FLsetup class with the specified FLsetupId. + """ + res = pd.read_sql( + text(READ_SETUP_QUERY), my_eng, params={"flsetup_id": FLsetupId} + ).iloc[0] + + network_res = pd.read_sql( + text(READ_NETWORK_BY_ID_QUERY), + my_eng, + params={"net_id": int(res["NetId"])}, + ).iloc[0] + network = Network(network_res["NetName"]) + setattr(network, "id", res["NetId"]) + fl_setup = cls(res["name"], res["description"], network) + if res["column_name"] == str(None): + res["column_name"] = None + setattr(fl_setup, "column_name", res["column_name"]) + setattr(fl_setup, "id", res["FLsetupId"]) + + return fl_setup
    + + +
    +[docs] + @staticmethod + def list_allsetups(): + """List all the FL setups. + + Returns: + DataFrame: A DataFrame containing information about all the FL setups. + """ + Flsetups = pd.read_sql(text(READ_ALL_SETUPS_QUERY), my_eng) + return Flsetups
    + + +
    +[docs] + def create_nodes_from_master_dataset(self, params_dict: dict): + """Create nodes from the master dataset. + + Args: + params_dict (dict): A dictionary containing parameters for node creation. + - column_name (str): The name of the column in the MasterDataset used to create nodes. + - train_nodes (list): A list of node names that will be used for training. + - test_nodes (list): A list of node names that will be used for testing. + + Returns: + list: A list of Node instances created from the master dataset. + """ + assert "column_name" in params_dict.keys() + column_name, train_nodes, test_nodes = ( + params_dict["column_name"], + params_dict["train_nodes"], + params_dict["test_nodes"], + ) + self.column_name = column_name + self.auto = 1 + + # Update the Column name of the auto flSetup + query = f"UPDATE FLsetup SET column_name = '{column_name}' WHERE name = '{self.name}'" + my_eng.execute(text(query)) + + + # Add Network to DB + # self.network.create_network() + + netid = get_netid_from_name(self.network.name) + + assert self.network.mtable_exists == 1 + node_names = pd.read_sql( + text(READ_DISTINCT_NODES_QUERY.format(column_name)), my_eng + ) + + nodes = [Node(val[0], 1) for val in node_names.values.tolist()] + + used_nodes = [] + + for node in nodes: + if node.name in train_nodes: + node.train = 1 + node.create_node(netid) + used_nodes.append(node) + if node.name in test_nodes: + node.train =0 + node.create_node(netid) + used_nodes.append(node) + return used_nodes
    + + +
    +[docs] + def create_dataloader_from_node( + self, + node: Node, + output, + fill_strategy="mean", fit_encode=[], to_drop=[], + train_batch_size: int = 32, + test_batch_size: int = 1, + split_frac: float = 0.2, + dataset: Dataset = None, + + ): + """Create DataLoader from a Node. + + Args: + node (Node): The node from which to create DataLoader. + train_batch_size (int): The batch size for training data. + test_batch_size (int): The batch size for test data. + split_frac (float): The fraction of data to be used for training. + dataset (Dataset): The dataset to use. If None, the method will read the dataset from the node. + + Returns: + DataLoader: The DataLoader instances for training and testing. + """ + if dataset is None: + if self.column_name is not None: + dataset = process_data_after_reading( + node.get_dataset(self.column_name), output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop + ) + else: + dataset = process_data_after_reading( + node.get_dataset(), output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop) + + dataset_size = len(dataset) + traindata_size = int(dataset_size * (1 - split_frac)) + traindata, testdata = random_split( + dataset, [traindata_size, dataset_size - traindata_size] + ) + trainloader, testloader = DataLoader( + traindata, batch_size=train_batch_size + ), DataLoader(testdata, batch_size=test_batch_size) + return trainloader, testloader
    + + +
    +[docs] + def create_federated_dataset( + self, output, fill_strategy="mean", fit_encode=[], to_drop=[], val_frac=0.1, test_frac=0.2 + ) -> FederatedDataset: + """Create a federated dataset. + + Args: + output (string): the output feature of the dataset + val_frac (float): The fraction of data to be used for validation. + test_frac (float): The fraction of data to be used for testing. + + Returns: + FederatedDataset: The FederatedDataset instance containing train, validation, and test data. + """ + + if not self.column_name: + to_drop.extend(["DataSetName" , "NodeId" , "DataSetId"]) + else : + to_drop.extend(["PatientId"]) + + netid = self.network.id + train_nodes = pd.read_sql( + text( + f"SELECT Nodes.NodeName FROM Nodes WHERE Nodes.NetId = {netid} AND Nodes.train = 1 " + ), + my_eng, + ) + test_nodes = pd.read_sql( + text( + f"SELECT Nodes.NodeName FROM Nodes WHERE Nodes.NetId = {netid} AND Nodes.train = 0 " + ), + my_eng, + ) + + train_nodes = [ + Node(val[0], 1, test_frac) for val in train_nodes.values.tolist() + ] + test_nodes = [Node(val[0], 0) for val in test_nodes.values.tolist()] + + trainloaders, valloaders, testloaders = [], [], [] + # if len(test_nodes) == 0: + # raise "test node empty" + if test_nodes is None: + _, testloader = self.create_dataloader_from_node( + train_nodes[0], output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop) + testloaders.append(testloader) + else: + for train_node in train_nodes: + train_valloader, testloader = self.create_dataloader_from_node( + train_node, output, fill_strategy=fill_strategy, + fit_encode=fit_encode, to_drop=to_drop,) + trainloader, valloader = self.create_dataloader_from_node( + train_node, + output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop, + test_batch_size=32, + split_frac=val_frac, + dataset=train_valloader.dataset, + ) + trainloaders.append(trainloader) + valloaders.append(valloader) + testloaders.append(testloader) + + for test_node in test_nodes: + _, testloader = self.create_dataloader_from_node( + test_node, output, fill_strategy=fill_strategy, fit_encode=fit_encode, to_drop=to_drop, split_frac=1.0 + ) + testloaders.append(testloader) + train_nodes_names = [node.name for node in train_nodes] + test_nodes_names = train_nodes_names + [ + node.name for node in test_nodes + ] + + # test_nodes_names = [ + # node.name for node in test_nodes + # ] + + # Add FlSetup on to the DataBase + # self.create() + + # self.network.update_network(FLsetupId=self.id) + fed_dataset = FederatedDataset( + self.name + "_Feddataset", + train_nodes_names, + test_nodes_names, + trainloaders, + valloaders, + testloaders, + ) + self.fed_dataset = fed_dataset + self.fed_dataset.create(self.id) + return self.fed_dataset
    + + + + + +
    +[docs] + def get_flDataSet(self): + """ + Retrieve the federated dataset associated with the FL setup using the FL setup's name. + + Returns: + pandas.DataFrame: DataFrame containing the federated dataset information. + """ + return pd.read_sql( + text( + f"SELECT * FROM feddatasets WHERE FLsetupId = {get_flsetupid_from_name(self.name)}" + ), + my_eng, + )
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/NetManager/net_helper.html b/docs/_build/_modules/Medfl/NetManager/net_helper.html new file mode 100644 index 0000000..0ed8b9d --- /dev/null +++ b/docs/_build/_modules/Medfl/NetManager/net_helper.html @@ -0,0 +1,380 @@ + + + + + + MEDfl.NetManager.net_helper — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.NetManager.net_helper

    +from sklearn.preprocessing import LabelEncoder
    +from sklearn.impute import SimpleImputer
    +
    +from sqlalchemy import text
    +
    +import torch
    +import pandas as pd
    +from torch.utils.data import TensorDataset
    +import numpy as np
    +
    +
    +from scripts.base import my_eng
    +
    +
    +
    +[docs] +def is_str(data_df, row, x): + """ + Check if a column in a DataFrame is of type 'object' and convert the value accordingly. + + Args: + data_df (pandas.DataFrame): DataFrame containing the data. + row (pandas.Series): Data row. + x (str): Column name. + + Returns: + str or float: Processed value based on the column type. + """ + if data_df[x].dtype == "object": + x = f"'{row[x]}'" + else: + x = row[x] + return x
    + + + +
    +[docs] +def process_eicu(data_df): + """ + Process eICU data by filling missing values with mean and replacing NaNs with 'Unknown'. + + Args: + data_df (pandas.DataFrame): Input data. + + Returns: + pandas.DataFrame: Processed data. + """ + # Identify numeric and non-numeric columns + numeric_columns = data_df.select_dtypes(include=[np.number]).columns + non_numeric_columns = data_df.select_dtypes(exclude=[np.number]).columns + + # Fill NaN in numeric columns with mean + data_df[numeric_columns] = data_df[numeric_columns].fillna(data_df[numeric_columns].mean()) + + # Fill NaN in non-numeric columns with 'Unknown' + data_df[non_numeric_columns] = data_df[non_numeric_columns].fillna('Unknown') + + try: + data_df = data_df.reset_index(drop=True) + except: + pass + + return data_df
    + + + +# remove indiserd columns after reading from the DB +
    +[docs] +def process_data_after_reading(data, output, fill_strategy="mean", fit_encode=[], to_drop=[]): + """ + Process data after reading from the database, including encoding, dropping columns, and creating a PyTorch TensorDataset. + + Args: + data (pandas.DataFrame): Input data. + output (str): Output column name. + fill_strategy (str, optional): Imputation strategy for missing values. Default is "mean". + fit_encode (list, optional): List of columns to be label-encoded. Default is an empty list. + to_drop (list, optional): List of columns to be dropped from the DataFrame. Default is an empty list. + + Returns: + torch.utils.data.TensorDataset: Processed data as a PyTorch TensorDataset. + """ + + # Check if there is a DataSet assigned to the node + if (len(data) == 0): + raise "Node doesn't Have dataSet" + + encoder = LabelEncoder() + # En Code some columns + for s in fit_encode: + try: + data[s] = encoder.fit_transform(data[s]) + except: + raise print(s) + + # The output of the DATA + y = data[output] + + X = data + + + # remove indisered columns when reading the dataframe from the DB + for column in to_drop: + try: + X = X.drop( + [column], axis=1 + ) + except Exception as e: + raise e + + + # Get the DATAset Features + features = [col for col in X.columns if col != output] + + # Impute missing values using the mean strategy + try: + imputer = SimpleImputer(strategy=fill_strategy) + X[features] = imputer.fit_transform(X[features]) + except: + print() + + X = torch.tensor(X.values, dtype=torch.float32) + y = torch.tensor(y.values, dtype=torch.float32) + data = TensorDataset(X, y) + + return data
    + + + +
    +[docs] +def get_nodeid_from_name(name): + """ + Get the NodeId from the Nodes table based on the NodeName. + + Args: + name (str): Node name. + + Returns: + int or None: NodeId or None if not found. + """ + + NodeId = int( + pd.read_sql( + text(f"SELECT NodeId FROM Nodes WHERE NodeName = '{name}'"), my_eng + ).iloc[0, 0] + ) + return NodeId
    + + + +
    +[docs] +def get_netid_from_name(name): + """ + Get the Network Id from the Networks table based on the NetName. + + Args: + name (str): Network name. + + Returns: + int or None: NetId or None if not found. + """ + try: + NetId = int( + pd.read_sql( + text(f"SELECT NetId FROM Networks WHERE NetName = '{name}'"), + my_eng, + ).iloc[0, 0] + ) + except: + NetId = None + return NetId
    + + + +
    +[docs] +def get_flsetupid_from_name(name): + """ + Get the FLsetupId from the FLsetup table based on the FL setup name. + + Args: + name (str): FL setup name. + + Returns: + int or None: FLsetupId or None if not found. + """ + try: + id = int( + pd.read_sql( + text(f"SELECT FLsetupId FROM FLsetup WHERE name = '{name}'"), + my_eng, + ).iloc[0, 0] + ) + except: + id = None + return id
    + + + +
    +[docs] +def get_flpipeline_from_name(name): + """ + Get the FLpipeline Id from the FLpipeline table based on the FL pipeline name. + + Args: + name (str): FL pipeline name. + + Returns: + int or None: FLpipelineId or None if not found. + """ + try: + id = int( + pd.read_sql( + text(f"SELECT id FROM FLpipeline WHERE name = '{name}'"), + my_eng, + ).iloc[0, 0] + ) + except: + id = None + return id
    + + + +
    +[docs] +def get_feddataset_id_from_name(name): + """ + Get the Federated dataset Id from the FedDatasets table based on the federated dataset name. + + Args: + name (str): Federated dataset name. + + Returns: + int or None: FedId or None if not found. + """ + try: + id = int( + pd.read_sql( + text(f"SELECT FedId FROM FedDatasets WHERE name = '{name}'"), + my_eng, + ).iloc[0, 0] + ) + except: + id = None + return id
    + + + +
    +[docs] +def master_table_exists(): + """ + Check if the MasterDataset table exists in the database. + + Returns: + bool: True if the table exists, False otherwise. + """ + + return pd.read_sql( + text( + " SELECT EXISTS ( SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = 'MasterDataset' )" + ), + my_eng, + ).values[0][0]
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/NetManager/network.html b/docs/_build/_modules/Medfl/NetManager/network.html new file mode 100644 index 0000000..e6c2f1b --- /dev/null +++ b/docs/_build/_modules/Medfl/NetManager/network.html @@ -0,0 +1,303 @@ + + + + + + MEDfl.NetManager.network — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.NetManager.network

    +# src/MEDfl/NetManager/network.py
    +
    +from MEDfl.LearningManager.utils import *
    +
    +from .net_helper import *
    +from .net_manager_queries import (CREATE_MASTER_DATASET_TABLE_QUERY,
    +                                  CREATE_DATASETS_TABLE_QUERY,
    +                                  DELETE_NETWORK_QUERY,
    +                                  INSERT_NETWORK_QUERY, LIST_ALL_NODES_QUERY,
    +                                  UPDATE_NETWORK_QUERY, GET_NETWORK_QUERY)
    +from .node import Node
    +import pandas as pd
    +from MEDfl.LearningManager.utils import params
    +
    +
    +
    +[docs] +class Network: + """ + A class representing a network. + + Attributes: + name (str): The name of the network. + mtable_exists (int): An integer flag indicating whether the MasterDataset table exists (1) or not (0). + """ + +
    +[docs] + def __init__(self, name: str = ""): + """ + Initialize a Network instance. + + Parameters: + name (str): The name of the network. + """ + self.name = name + self.mtable_exists = int(master_table_exists()) + self.validate()
    + + +
    +[docs] + def validate(self): + """Validate name""" + + if not isinstance(self.name, str): + raise TypeError("name argument must be a string")
    + + +
    +[docs] + def create_network(self): + """Create a new network in the database.""" + my_eng.execute(text(INSERT_NETWORK_QUERY.format(name=self.name))) + self.id = get_netid_from_name(self.name)
    + + +
    +[docs] + def use_network(self, network_name: str): + """Use a network in the database. + + Parameters: + network_name (str): The name of the network to use. + + Returns: + Network or None: An instance of the Network class if the network exists, else None. + + """ + network = pd.read_sql( + text(GET_NETWORK_QUERY.format(name=network_name)), + my_eng, + ) + + if (network.NetId[0]): + self.name = network.NetName[0] + self.id = network.NetId[0] + self.mtable_exists = int(master_table_exists()) + self.validate() + return self + else: + return None
    + + +
    +[docs] + def delete_network(self): + """Delete the network from the database.""" + my_eng.execute(text(DELETE_NETWORK_QUERY.format(name=self.name)))
    + + +
    +[docs] + def update_network(self, FLsetupId: int): + """Update the network's FLsetupId in the database. + + Parameters: + FLsetupId (int): The FLsetupId to update. + """ + my_eng.execute( + text(UPDATE_NETWORK_QUERY.format(FLsetupId=FLsetupId, id=self.id)) + )
    + + +
    +[docs] + def add_node(self, node: Node): + """Add a node to the network. + + Parameters: + node (Node): The node to add. + """ + node.create_node(self.id)
    + + +
    +[docs] + def list_allnodes(self): + """List all nodes in the network. + + Parameters: + None + + Returns: + DataFrame: A DataFrame containing information about all nodes in the network. + + """ + return pd.read_sql( + text(LIST_ALL_NODES_QUERY.format(name=self.name)), my_eng + )
    + + +
    +[docs] + def create_master_dataset(self, path_to_csv: str = params['path_to_master_csv']): + """ + Create the MasterDataset table and insert dataset values. + + :param path_to_csv: Path to the CSV file containing the dataset. + """ + print(path_to_csv) + # Read the CSV file into a Pandas DataFrame + data_df = pd.read_csv(path_to_csv) + + # Process the data if needed (e.g., handle missing values, encode categorical variables) + # ... + + # Check if the MasterDataset table exists + + if self.mtable_exists != 1: + columns = data_df.columns.tolist() + columns_str = ",\n".join( + [ + f"{col} {column_map[str(data_df[col].dtype)]}" + for col in columns + ] + ) + my_eng.execute( + text(CREATE_MASTER_DATASET_TABLE_QUERY.format(columns_str)) + ) + my_eng.execute(text(CREATE_DATASETS_TABLE_QUERY.format(columns_str))) + + # Get the list of columns in the DataFrame + + data_df = process_eicu(data_df) + # Insert the dataset values into the MasterDataset table + + for index, row in data_df.iterrows(): + query_1 = "INSERT INTO MasterDataset(" + "".join( + f"{x}," for x in columns + ) + query_2 = f"VALUES (" + "".join( + f"{is_str(data_df, row, x)}," for x in columns + ) + query = query_1[:-1] + ")" + query_2[:-1] + ")" + my_eng.execute(text(query)) + + # Set mtable_exists flag to True + self.mtable_exists = 1
    + + +
    +[docs] + @staticmethod + def list_allnetworks(): + """List all networks in the database. + Returns: + DataFrame: A DataFrame containing information about all networks in the database. + + """ + return pd.read_sql(text("SELECT * FROM Networks"), my_eng)
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/Medfl/NetManager/node.html b/docs/_build/_modules/Medfl/NetManager/node.html new file mode 100644 index 0000000..d92d8f8 --- /dev/null +++ b/docs/_build/_modules/Medfl/NetManager/node.html @@ -0,0 +1,330 @@ + + + + + + MEDfl.NetManager.node — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +

    Source code for MEDfl.NetManager.node

    +import pandas as pd
    +
    +from scripts.base import *
    +from .net_helper import *
    +from .net_manager_queries import *
    +from MEDfl.LearningManager.utils import params
    +
    +
    +
    +[docs] +class Node: + """ + A class representing a node in the network. + + Attributes: + name (str): The name of the node. + train (int): An integer flag representing whether the node is used for training (1) or testing (0). + test_fraction (float, optional): The fraction of data used for testing when train=1. Default is 0.2. + """ + +
    +[docs] + def __init__( + self, name: str, train: int, test_fraction: float = 0.2, engine=my_eng + ): + """ + Initialize a Node instance. + + Parameters: + name (str): The name of the node. + train (int): An integer flag representing whether the node is used for training (1) or testing (0). + test_fraction (float, optional): The fraction of data used for testing when train=1. Default is 0.2. + """ + self.name = name + self.train = train + self.test_fraction = 1.0 if self.train == 0 else test_fraction + self.engine = engine
    + + +
    +[docs] + def validate(self): + """Validate name, train, test_fraction""" + if not isinstance(self.name, str): + raise TypeError("name argument must be a string") + + if not isinstance(self.train, int): + raise TypeError("train argument must be an int") + + if not isinstance(self.test_fraction, float): + raise TypeError("test_fraction argument must be a float")
    + + +
    +[docs] + def create_node(self, NetId: int): + """Create a node in the database. + Parameters: + NetId (int): The ID of the network to which the node belongs. + + Returns: + None + """ + self.engine.execute( + text(INSERT_NODE_QUERY.format(self.name, NetId, self.train)) + )
    + + +
    +[docs] + def delete_node(self): + """Delete the node from the database.""" + self.engine.execute(text(DELETE_NODE_QUERY.format(self.name)))
    + + +
    +[docs] + def check_dataset_compatibility(self, data_df): + """Check if the dataset is compatible with the master dataset. + Parameters: + data_df (DataFrame): The dataset to check. + + Returns: + None + """ + if master_table_exists() != 1: + print("MasterDataset doesn't exist") + else: + columns = data_df.columns.tolist() + # get master_dataset columns + master_table_columns = pd.read_sql( + text(SELECT_MASTER_COLUMNS_QUERY), self.engine + ).columns.tolist() + assert [x == y for x, y in zip(master_table_columns, columns)]
    + + +
    +[docs] + def update_node(self): + """Update the node information (not implemented).""" + pass
    + + +
    +[docs] + def get_dataset(self, column_name: str = None): + """Get the dataset for the node based on the given column name. + Parameters: + column_name (str, optional): The column name to filter the dataset. Default is None. + + Returns: + DataFrame: The dataset associated with the node. + """ + NodeId = get_nodeid_from_name(self.name) + if column_name is not None: + + node_dataset = pd.read_sql( + text( + SELECT_DATASET_BY_COLUMN_QUERY.format( + column_name, self.name + ) + ), + self.engine, + ) + + else: + node_dataset = pd.read_sql( + text(SELECT_DATASET_BY_NODE_ID_QUERY.format(NodeId)), + self.engine, + ) + return node_dataset
    + + +
    +[docs] + def upload_dataset(self, dataset_name: str, path_to_csv: str = params['path_to_test_csv']): + """Upload the dataset to the database for the node. + Parameters: + dataset_name (str): The name of the dataset. + path_to_csv (str, optional): Path to the CSV file containing the dataset. Default is the path in params. + + Returns: + None + """ + data_df = pd.read_csv(path_to_csv) + + nodeId = get_nodeid_from_name(self.name) + columns = data_df.columns.tolist() + self.check_dataset_compatibility(data_df) + + data_df = process_eicu(data_df) + for index, row in data_df.iterrows(): + query_1 = "INSERT INTO DataSets(DataSetName,nodeId," + "".join( + f"{x}," for x in columns + ) + query_2 = f" VALUES ('{dataset_name}',{nodeId}, " + "".join( + f"{is_str(data_df, row, x)}," for x in columns + ) + query = query_1[:-1] + ")" + query_2[:-1] + ")" + self.engine.execute(text(query))
    + + +
    +[docs] + def assign_dataset(self, dataset_name:str): + """Assigning existing dataSet to node + Parameters: + dataset_name (str): The name of the dataset to assign. + + Returns: + None + """ + + nodeId = get_nodeid_from_name(self.name) + query = f"UPDATE DataSets SET nodeId = {nodeId} WHERE DataSetName = '{dataset_name}'" + self.engine.execute(text(query))
    + + +
    +[docs] + def unassign_dataset(self, dataset_name:str): + """unssigning existing dataSet to node + Parameters: + dataset_name (str): The name of the dataset to assign. + + Returns: + None + """ + + query = f"UPDATE DataSets SET nodeId = {-1} WHERE DataSetName = '{dataset_name}'" + self.engine.execute(text(query))
    + + +
    +[docs] + def list_alldatasets(self): + """List all datasets associated with the node. + Returns: + DataFrame: A DataFrame containing information about all datasets associated with the node. + + """ + return pd.read_sql( + text(SELECT_ALL_DATASETS_QUERY.format(self.name)), my_eng + )
    + + +
    +[docs] + @staticmethod + def list_allnodes(): + """List all nodes in the database. + Returns: + DataFrame: A DataFrame containing information about all nodes in the database. + + """ + query = text(SELECT_ALL_NODES_QUERY) + res = pd.read_sql(query, my_eng) + return res
    +
    + +
    + +
    +
    +
    + +
    + +
    +

    © Copyright 2023, MEDomics consortium.

    +
    + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
    +
    +
    +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_modules/index.html b/docs/_build/_modules/index.html new file mode 100644 index 0000000..a3c3f28 --- /dev/null +++ b/docs/_build/_modules/index.html @@ -0,0 +1,123 @@ + + + + + + Overview: module code — MEDfl 0.1.0 documentation + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +
    + + + + \ No newline at end of file diff --git a/docs/_build/_sources/Medfl.LearningManager.rst.txt b/docs/_build/_sources/Medfl.LearningManager.rst.txt new file mode 100644 index 0000000..4f9513e --- /dev/null +++ b/docs/_build/_sources/Medfl.LearningManager.rst.txt @@ -0,0 +1,85 @@ +MEDfl.LearningManager package +============================= + +Submodules +---------- + +MEDfl.LearningManager.client module +----------------------------------- + +.. automodule:: MEDfl.LearningManager.client + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.dynamicModal module +----------------------------------------- + +.. automodule:: MEDfl.LearningManager.dynamicModal + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.federated\_dataset module +----------------------------------------------- + +.. automodule:: MEDfl.LearningManager.federated_dataset + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.flpipeline module +--------------------------------------- + +.. automodule:: MEDfl.LearningManager.flpipeline + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.model module +---------------------------------- + +.. automodule:: MEDfl.LearningManager.model + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.plot module +--------------------------------- + +.. automodule:: MEDfl.LearningManager.plot + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.server module +----------------------------------- + +.. automodule:: MEDfl.LearningManager.server + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.strategy module +------------------------------------- + +.. automodule:: MEDfl.LearningManager.strategy + :members: + :undoc-members: + :show-inheritance: + +MEDfl.LearningManager.utils module +---------------------------------- + +.. automodule:: MEDfl.LearningManager.utils + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: MEDfl.LearningManager + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/_sources/Medfl.NetManager.rst.txt b/docs/_build/_sources/Medfl.NetManager.rst.txt new file mode 100644 index 0000000..d36ef24 --- /dev/null +++ b/docs/_build/_sources/Medfl.NetManager.rst.txt @@ -0,0 +1,61 @@ +MEDfl.NetManager package +======================== + +Submodules +---------- + +MEDfl.NetManager.dataset module +------------------------------- + +.. automodule:: MEDfl.NetManager.dataset + :members: + :undoc-members: + :show-inheritance: + +MEDfl.NetManager.flsetup module +------------------------------- + +.. automodule:: MEDfl.NetManager.flsetup + :members: + :undoc-members: + :show-inheritance: + +MEDfl.NetManager.net\_helper module +----------------------------------- + +.. automodule:: MEDfl.NetManager.net_helper + :members: + :undoc-members: + :show-inheritance: + +MEDfl.NetManager.net\_manager\_queries module +--------------------------------------------- + +.. automodule:: MEDfl.NetManager.net_manager_queries + :members: + :undoc-members: + :show-inheritance: + +MEDfl.NetManager.network module +------------------------------- + +.. automodule:: MEDfl.NetManager.network + :members: + :undoc-members: + :show-inheritance: + +MEDfl.NetManager.node module +---------------------------- + +.. automodule:: MEDfl.NetManager.node + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: MEDfl.NetManager + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/_sources/Medfl.rst.txt b/docs/_build/_sources/Medfl.rst.txt new file mode 100644 index 0000000..95b5d99 --- /dev/null +++ b/docs/_build/_sources/Medfl.rst.txt @@ -0,0 +1,19 @@ +MEDfl package +============= + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + MEDfl.LearningManager + MEDfl.NetManager + +Module contents +--------------- + +.. automodule:: MEDfl + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/_sources/index.rst.txt b/docs/_build/_sources/index.rst.txt new file mode 100644 index 0000000..53a2125 --- /dev/null +++ b/docs/_build/_sources/index.rst.txt @@ -0,0 +1,20 @@ +.. MEDfl-package-docs documentation master file, created by + sphinx-quickstart on Wed Jan 10 21:46:56 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to MEDfl-package-docs's documentation! +============================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + modules + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/_build/_sources/modules.rst.txt b/docs/_build/_sources/modules.rst.txt new file mode 100644 index 0000000..e332f8f --- /dev/null +++ b/docs/_build/_sources/modules.rst.txt @@ -0,0 +1,7 @@ +MEDfl +===== + +.. toctree:: + :maxdepth: 4 + + MEDfl diff --git a/docs/_build/_static/MEDomics.png b/docs/_build/_static/MEDomics.png new file mode 100644 index 0000000000000000000000000000000000000000..4456fda85a3883a667da90ee5ccf5f63ce769a1e GIT binary patch literal 128504 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

    43jMkgc>0<4ZL{yriXvss7yk7}N8iCmw>+LD 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 W$e$Oam)YCFa^C5(BiSBy^n7 literal 0 HcmV?d00001 diff --git a/docs/_build/_static/_sphinx_javascript_frameworks_compat.js b/docs/_build/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000..8141580 --- /dev/null +++ b/docs/_build/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs/_build/_static/basic.css b/docs/_build/_static/basic.css new file mode 100644 index 0000000..30fee9d --- /dev/null +++ b/docs/_build/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_build/_static/css/badge_only.css b/docs/_build/_static/css/badge_only.css new file mode 100644 index 0000000..c718cee --- /dev/null +++ b/docs/_build/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff b/docs/_build/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..6cb60000181dbd348963953ac8ac54afb46c63d5 GIT binary patch literal 87624 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

    !pma|lSQ?8FBe{DRl|@FzhU7Cb>&@ataZS{g zrCQo@Lushkm71KyL3$%QD?KeSADp!x{f z=8g-xggQyFIyp&U(+DO4!2ygCg$vPu1pqEc^*Qa)IPstXB!i@fDLx<-```)5UsmT$Yl%a2onC zAFmUqUVZ7M=U;sB~=#ZhJ zS2lbGii8+5IZ#kxQUi*iaRi9X

    #R4x5a04mzf2YJ>#U<-Nc81}`=EFMdUjIP>d| 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

    b(7>T&1{%W+D%3_gwxcBR7_myM-&X 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 DnuPx& literal 0 HcmV?d00001 diff --git a/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff b/docs/_build/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..f815f63f99da80ad2be69e4021023ec2981eaea0 GIT binary patch literal 86288 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 z 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

    msZ%O|+*Z+LS;;x4v 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%0AU9xwl*jMUcB+ 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 NDMp1hFB${m{{V&DCTjoy literal 0 HcmV?d00001 diff --git a/docs/_build/_static/css/fonts/lato-bold-italic.woff2 b/docs/_build/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c4e3d804b57b625b16a36d767bfca6bbf63d414e GIT binary patch literal 193308 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

    l?s7}*4vp!2W|88=L^r| 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

    nR1?qM=|aYy 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

    F}woT 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"bt0}@AlIHaMn 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 literal 0 HcmV?d00001 diff --git a/docs/_build/_static/css/fonts/lato-bold.woff2 b/docs/_build/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bb195043cfc07fa52741c6144d7378b5ba8be4c5 GIT binary patch literal 184912 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

    x{o9f|7gEmo2*wv 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 z zszDMPcOXcsJmc55^ndeO7g@Vzt3hi7h|_rvbdL8^vuFU8Q+Al0X-FsB>Z;N#pKLqs z@%UfjhIRxPbum)AiaGr@&QI4Li$pV=h7tied(NMcO)QqGx?SHe}w=kD_n%u+*SbOltvK*Nz+~|-#X%o$X@(@2e z;Tasa;7fOK*{45|IJ5p6SifpUvsiR=vQHoDd!oYKTF^>W?k!zB!Cpie-kJ*Aa*5r_%ZvAYe(olaOm9swIDmx?EE zZUijbQ>Kwr!laZBXmk|XAwOgV#){)YmIh*Pwj#E`k(J1&JQUg> zCwa9)pYz2Kj~d^l@TjQ~2@PUC=S2#|UXUC?%z{0pFnKh8jo;|P3T#b0V+hqIo24?T z++{%~$(fJ|wP?ipbGgN7_p?pHL!?uCS+43%L!}Q+pmQN)syTNQmsP6X!aMZ zq0lUAsF4BsQ26!;$!|mulT&Xr1NsBX)t;rG_R;-%ZuNpv zNIRcK8jRX;6~JPk6p)_cq3D(LVzXT^nkby*L~@%lt8hVKoHqNRAq;dck;bN|vOlcm z<6rx>`04TwxI;iMBjTuDRorI_SE$F#P0yNsL*Es$XZ0RP9!*_oV(uDn+lf*Bs_7AE zhd&{ekkOaXo(!+rqMtSrbfp=!m_=uM|uI|ZFp&UG;L>`z3JDr09_=XEY)!UqX zoT!zq1g#W-QJ+Jmm>NO(e=kw_xK8vjCC=cE(1As*eSQ_8yW*W-U#;$pp>x-2L;IfE zE`U&;mCjASTG^qyu%D2@Lc1nq5Mtlz&{433$>{ZaddSbzapOu4L^*uP&-$NoIe6R& zT?B9fn!{sOWSJTro0s?EXmPEciG7kn*$GUy!UEY9he3`do1AL`Cq>kqXeouF!0e(@ z1|b%6&HWqdYpiMYCvd7)mh)HCkuL=>T?$YL$~5z3Xm$C58!6!Mxva~VmH$Sym)3Ab za&NY0kdm2y1WdbHn?B_wg_7QIA#a?r%50`fTujWy4E0nnncc}@L)Ln88cuDkT5@Wd zo(WtNQBD>RFgW-+WHS32gHi1Co8HqC=k_81>Sh?l?UGkhZEKMJYbph-T&92oCQQ2Mlz0Qkn2g<7q@zczmfvX zbW=Xt0`Btr5dHpPK0HrQgkP_ z;MgTcJXVeO;^VY@QT2CuF`zpM*&`9?Mb4Iymr#>1oLk%lgwzo=U>xy>2*|K(c>Nsju+)fxXaeZcW|52D(oJJbx}f^lb_kD+D%NG0_ZM2yf> z6~Y^#;UDcJ@RJN(*V$3Uv!fz;PTJlM4bE*Gy-t3lRkm9k({#>SGO9dOQDeSRlX?iB z#A!^f6_&_mpxZEPy!QtJ4@e{`LTL@e#yHE=@s@cvZe@r{U#YR=b7WzX#0BfHoTXe# zqwtj;A~iz~U9!i^6dZ~`X5)e}wT-N8R7ePH9F#u0U<+OfLVqTBf93iB ziBHPwEYF-Vnr8S5>1ZRaee*>eNg0NiDF%I0n{^A0PAW={38K=(?1ev=*^{AUFrT8y zTt0~MFILw!&o{@ED)~&G+{e*p^3-T}1J8s1VX)E-FHe&cZz9K;STSDQoEO;Q73vgo za*dx+usnAQQSXNJI0|5Ef;mkTr@)qpiNT@BVT?9)$6#GB84+0%?EI+bbIUw&-WZA3 zL{>B{$v22I8V9IiE2WeJ`PcIV_>WcAxBz`H!DZ6F;WAX4G1SDf30!;`G&X#-)UbMI zf7UTMG3fDYKM#ymC=otJ;O!?ao+b4!<0K4l>C*Q(RB#`IlnmJ@hHciWPCj7vy6jR^ zf6dY`Nn2>hG+u8^Jx^_x)n$ZH7RC>*n&+~&cX0a;nPMv`h5}rx&PM98xT=Z3haRL1 zGbFA4`DzWszjoMcJpi;+(as#}G2W}$3G(G(Kna3*>rGW=$ za;FO^n*wWR=F{mt=voD@Xf|;MVk<(o-&EI5y4VIwg?$=_rcr(jS5Nn25G$I&GyGeh zu#&t|0yjUR(w5*A@)DdD*eSyRAf9 zh%hnd=ph%UH8|SxnI6^0hOl9s+ZQ~2AtaY^scE}0n0@r*o)Vd1YxnH>AVS@|;D~v%Gj_ zkfH#y>&anz0|eY1y0|>xzhE3;4WrW81_i&Jr(Tn?_!pGwa!%#k zFVUekt?LQhsb>~j7Dio7EY>8 z)TODeb~T=0B!{+%X5(|O06gglP;YRd`${y|fUGxq*u$CJQ`DmF)6`5qXNW~c)^klN zG@Nh&2D}Ge89LwS8+qWclbKeh?uCtG1^lB)m2oN&%i4vM^*MAPa}m#AB^HX@ORDIcbg6W z3-@jNNscyZ8%1a**U5`3wiTIGH~tA;o_FBr6$svoI2~FP-}8-9W^*yRVp}nWTvue@ zMoBX-{xQb_y0^C8tkHKBsFphwU6<(tgrIbaf&O$RgCdot!s)oBlRB$WZCH}Mo~I7N z3}e7&-o#Idp~1H}xOtG~RT+N`x0tsZTq@jeUuV4f>v|jm z2}T1mt|Qccnmf!gs1{)PvRv!3Jm*%ysG*9Y45QYg z$`$mdD+Deo6ahoY$O6r%s9a`F2N)-AwVL-Tt8Q87T{NO{qt+a#>3Y`H`b+2%ARQ|c z+Lkx(jZ)Pybcb@4Juq5yM3-8Nv8MaEq`nKTu7R^$$T2!Ek4g#pu`a%j7+IGnEki%a%w<4-Dba0UV?@#e#K<+5WVq( zsQB-ix@iAc9tXLzKX&NuuZiNks#i3nzO0wIUlAWZT-!lO#o*h@;G+A6e& zT99ioE)PLI0InE$iCq{Z5?}^-(t7m9CDCyp+jy6v==-kvL#SkUHazwJpLyRL5jq+y` z%I*-)T|QS4#Lzd7AHQw&l-~>Nq?b!oe2Og>x*ABb3z>-xsK(T#Fl#P}>+)!4TEl2_ z{IUrl7xM8CSDZA1;fC>Ts?F;1CrfwXqv`1Ej<7d96b#DHa_8MA%_+v+&_wAa_?IdB* zHbctzF*Y=!95G{C>UKl&*ka*%BxZf^={Xf9bGYTlstFP$#)M>gGn**EUU(@p6ke=z zw-Q-AO4`FXJ@+ti=#Iex(%21ROAV=7_xB)vSz$1Z#IMKs+W5 zwrBM>Rph8DXj-8BRv#hKwKRu%QG z{&S)IRc!dkQuJpJZS(UP`s5cI-N2(kl8@Xw|0#(^jU#jP`{!WFcT!WvTY&(qi*mR% zahw?2^yrEWbcx!5&2o=pDB_S02JU!@$VUy zDl~rZzY^OvJ<+?}N1WpV`9+3bC3ElU25UxwL*h|fH`w9q*JBuB;HzGmt`p6aTR*Pui#8~tz(kH!E?d{yhJCfrUrT?It!Rau4r z)`GX>xIE?K9*{bJw)o&qh=Qil7S z5Hd&h^utA8fW$AOqIp?!D9xlJ4ja-5jC5&j6l9V_JiJGTbU0GErQ?txZMMltDQ>CDBsHBEOIHyEGzw&C)9kiG^L4j=&&kZ*EjFMpAFVvCvNSmOTjsFi+!2KUl+h6 zxdPcI$g=$1Gy>o3DZv|m;qTGNfZ%u-c0wERj$1w@Hu*W5y2DV$*pt%QExV+#a*heU8Lkr z%Qa6}q<)1YAN`m@#^mS=sz|tp&%2Iy$aNeAP~)23LN1-s;0h0^XqTEVj34*las8AErYFT~ z6HYDGNCE^7zmNis+0F{g3>rb}a=L1$?yJl|E=g4$$-st&We}ReWBWZgc*^n~>}CR2 zvszc#UDw1|UpV+{)%Kr(6T`MZ!+PeF zPh>TF6kgA?dGh+nx4c24-T!3#1#Dbe30`YxJk7{$zs;y`q>Pk}rmGvDdCtAbXlNv# z_>^#|GQFb`tM9aqgVM@fZ?7T-sVa%Y)E}_G1{J7bC0j3$D>+kGc;?%l0>n&WtyfRvc*9wQsBe7zU}(k8ETlJHT90pzE`U z43t==4l9wm8AfW`2DT_!wr5CG8tvIESvY0OPvi1CZs9gbTe2+eSscExwABVw;36Wz zaxP_3d{R=80UKgogGJEd|uwh zUf=zj<8i<{;OGDzvG2*vsedBN;#B&vKI&*d9<_^h@*AHw$Yy z0xtJ#Vrfm(CNp?{Mio|K`^@?jPx^IT?6_y($$%Ly3H!~~?0X3j(~epH8^iXs6Pu(f zEwCjK*p3Ja2}h6JPx1DqB1AGRM_N&^)lO7gyCS}TBh^Zb`9gw~b8Z^m)eQp;VVbD) z^y}jfP%Cv%`@VnjyvK42;F?nN!C)((f3pE%0~F}~@?St5N80ovv7(MYV+5`rIQcO* zD{7Ct40wrHSxY#b|F>%Co^oK0UIhQZc|Mm#<#hVH#05{2`&>kRYQEM&D~ScRIwy8H zf06^ia4SK`GscIzW1xN}_b$g5{_ncoX4`#l-*Wj;ktD*z&&6U$<9)FGWx&{Wt7!3o zTPS12D@Pr*U1T65l_m}Rxa-1GkPj`F1#~MmRKPnJjBHT}_=80WtySS4`2taYM#k;{ zNvV-V>IXpq|3^V$MJo`{vQK`S=88}KuNjM?X0TadywW)Kv@L7uYZFi6_R9DfsZRkT zZ(fc9hRdS1^+`w*eG@JU49BSA;0UuYI~X3~M8n(RoA3^>0X-xR5fD7ojRuzCPv7`V zuo)Dxu)NC+wIFE8tV{uY^3v=PZbC6JE+<+SlNtarf3;gUunAU|}m)*0xX6KV9l*y_Q>v{m$P?0Lh+xCX^r z%2?mOb-NUqbC7r_Z(&%m_F0ke~P(B*HyzrONc5wu5 zLcF$oT_H&mWPl5}QMxf%)Fyjs(M38X6ezobRZzJdb>NOH73F}bm zilK#?SOVzJ_{|Y0EUm#*$EFRVbp!k&(mvG#oR$Y7wbVV|Dq`;X33(!3GSN!&&PJjQ z@k_}_8jUSwRf}c$#R?rKx5Bf-DXwh0Q-Viv(JAta#WHublx->gyD7+sjP_>%^-6rN z>5be1fcwlE(f%^=I#rxN2b>ig4LMEO4P6EC$MI|8Bb)@tgvHVv_PXloosz1+_us#t zB39X2zh$q>uHA)N$>r%$iHo%C=G326`jr(sf=aFxW;n$&poAf7X0qyY#Q}}!B zZhpj?>`jhSPHN2j`*SX17W#MgYAk)F9M#65c9%U4Tm+CqMetFcP!gu8xB^<+bF(Lj zGJ79M)BJkktfUcOl^*I<(!-MN*=npjUP9%k#E8qeD%E44ic{I8iH;=9q^w$Kohp(S zVSIKhS^KR)^V86lm})4@tB~iYWa3Dbsm`D>srUO5>g~ zd=92}~$u&AMga6A|xT_0G$rV2d_LkX-qQx;R^j&jtFV^gKn_ zT%u?Gy?exB-2dj{DWrtOUsRI;U086R(mh?1z#(rU8Cm2o+toxPmVN%&bCVWSA>ZyW2Y z++{EWxemz&L@d!J3X^A<9oIujZH<`aq#yfqd~Uu+(TKLD{B-OIup_vf;}`c5q*JWs zv;DJn>q6&LpJ|H6qXG{<`J7siuQkJcDs4=i3S7Jh5Y9X}A9uufzAp)gOf<4+v+m60 zgF*7fl!7+0G0vwHq!Jt5U;E+!(QO8Zq}7j}_O)yjHmPY%k$oF?KY6^G9O%e)E2s6I ztHsrB>q@eba&}CW`_^!5)6CMZ3$z>(Kvv#Zlk;W>2AfT#PIm3aVOX?~zRmCvGykVF zUaZoXS!JjaZd0|3rQwAeL0hPus%hc)Agl;#Zit6p*@tGA;*OMKs+mVlyonQX?v>l7 z3kEzqv?^&7{2D0%miO}-E@Z+@!!@}NMqsv`w9876D0K^LLyJ|*frq8E^Q09Og7ei7@R~< z^gu(*)0HFpM-9S@ktC9$*`QEv$O1XN{Ds6Dw~9iIzt@M--Ug^J;p)!}3{TTj9R?aN zjgPF0Bn1$N7ugi}>|rQkH$ufuHph$N@vr4c$bYlv{}5#UF+MqqY0pOg2P83V<%S9~ zyv&Dxo)^V02KogS`|Of563?EE`A_Ir{fvQ@E^Am09-l50jWUxy5(yXC)bHEK2&;jA z{9=th%)uqv9}fzM8A)57!uF=N((zdZhn@oE!)iaka+uT-9Y?B3$&q%Bfc@++HqJ>* z2yH>221Vgc3-7|q_ovpdjsX8-F$D&p@(y9?;5KPFP=XSWpPdXbfjhPV2s|7bx48ld9DK&q z713ThkBFJfXD0#?`UILC_I5tG+=yp7Mw#-+3KOnlDkNNa<%lPChDNyi{DAsxI)O2E z@*!OwfBPc@dwQq?U8+f8WM08l%Z>#2(n~D5e5~B+;<`yHE=`jB7)?+X%E*Y6D=Y!q zz4P)E5I{GqvaK_9x;rzz>U%(gdvGSYA>tMlXQO`7=o97q1b)S=?Wl<@#@SSWGeHwA z;mn`w{o>KgXd6ow^XVnuiibD6RKl|{$lETSO{H>?Lw0t4u0v6bkz0#+YCFmwZj7xn zC#l-MYY6ob;sx-N58Wflw+&7-Je6LdF#W;3gCA(ZG6?By}U2NNDUjYG@g zxdZX`jPA8H&Yhp^U=nNyQqNL-Te@mz*d%l~l0PdUIist$5q#s~9mD_V<_&Anu8}Xb zcm`vik(F(iM!9l*M5uEUiY+2eDQd{fg6nfn_JQo>oUKP%;tp@Zo|9(MSuk)3v92w{ zgJ>NrvwD*PcSW`CK39alo$M70K575+dQE?_RL)4T!mK7655@Os;|WcF+VvLuz)vl zJ<%CM`Mq;2WE)Kp%+Q}_qiFO_7HXKx>J?t);k^cBA5)&kwgtv~cv&H%Vsfk`2VIo| zW1VB8X|$OD<1Du&3;z+(EM2p*yK{5AW>n3^-6#|_0&~Ht!G)Mue|wSt<3-Biz|`r= zoD$G|walUQZ+L`Q;5--yMuRAkUMOh>Z97P*M+7aPmHc7Ej?*AIvH^4C((Ow} z@?Nm#-X3uM&d40*D@?D#=Bh#~F{`x^JI|^?9v+#R2U(wv8~r`B){ULr;+lcOl6=t0t zl&F0hYTsV)eO$aUkj zVYa;LrPE*UGq&p15g$dMk0Y(D;!3lefs+3yTx}e4>vv98<+Q0`Mf*?|+~}`r*natEHoIBKP+8 zRK|PQSFYR+pF#3E%mR4ktspWT-HqG23mdE~3s*25O#wcl*r_YRE5_(?s1irxhW+k` z`5PkCnZ%a(3lH?B*#*mIhO0aaxN18lY(|3c^#GDNN$1v7o7b41ZEIA_B*ZFicvqId zFAURRSIt@lNMiNRY*V4NlG^@2G7$6FFO-tJ^He+*FRWd#!=amq8rJd;nRk&$_$bF~ zye4S|n?ZWoD2|7nS_!_j!Tc^hi-b5D-fvjw5iGW}(!1tH^Vz;xUxpKbgHu;}pDSch zjEDG*x=Ut%ZYfUuZ7u}A5udi)3o{EYe61mTxKPkiAo`;3k)_eHuWy$x@JDYt5=#}3 z!}QqUn%4;Y>;woBAXgUlYV-npLXF|!#y<^(hL1MhF#xMP4Q8huQaOgUp-E*V78+(>hnmC_;Kv-zP z8G4=otFw^CB_G0~`Gt4kmm1$?aQg3S{ueg+I7X69jhum~KYey1a<1q)3vn_8uHyu9 z*al1{e)8zW=R)q$xo2ns?*4DD@nY~`h-}fBEU95JWPzy z=@9nw!3WyZbd)w(e{W!IAXuK~3aQ0bDT-4yjhJa4^^IK8N!TPH4WP?EO9QHe_#|Kq z)SsxnuIUnEPblIG9P4D7CylFUrqGMtQ-N`+v-e#_yFgF96;q{FYV$`E$SN3cO^@u(VZCR7+WsiQc&iZ#reAV(vi=+^%Td%R zZugz)KGlE92=Fa)eM`8SNUTpSip=*oHl!=li62qU99nlIKzi3*J4%`^RQE~`CI@^p4|IVJ`U)?3HC=rC>VP*8$n47x3T%G7Z-6}CutsBFB9=zG?97;l*!qm6LOe;NZC2esmN72_#Q}O$XqX>d zegJm@6`Vxg4+43rh(7w(my<6CoslJ~^K0_ldD5ep-pwkIId6Dd7j7|NjC#rRMDoz7 zHzQx^)HF~25fqR$R`J5YH!XK{MjY!!JmTMuuL2R6T4b5P5p#$W8Lu*!y-Pv8oGq$E zP!-lex+)c3laE%|#TaSMnSl|)AcKJXKjhbh(yQ`Xg`M#dFHTA3c}|7U$pC^EtXwc8 zBMHk{1}h=YiY0jE3J3e-hemvi8b0oC5Y@@2<-YD?odf~Wz4K(Cf#e_>M8V=4CyB9y z$L0qe-hH944^}-ustaMrcV48$S}bFm92w!oLo-? zz)hXZD_7C{rmS?JqdA?)tC8L(Op(-$^pY-GTOUr;Gg2oWGykXibX>E>z9`~6snW-% zgH%1CmzB#YGY;qKwzB;E#2 zcWbqdh%2_?k0%ubAB=5(!)a}O6EW5oxl)jMD?+4Gng|Dw6ozKvRitBZaEA)1wiuk7Qs^XaQhH9V1CdT<=Wt!6O$KR@# zwbkZ39+ZrzS@7I|f6MFdQMm&~Z8zz4je);^Iu^t2`kFKNJTQIhzyyRK3f&$=o`~wocX15O_dftRK*qn2NIPFiUC2!nFG%Z$XtBQa{xWS&RC^#R zh$LR=g7tw|Ss{22wc5pl2B%7;cHt}C6OY>FS1ONHfRfT*0x{K@4^g5%gqifAeXe!7 zb;0Bh8r9R)U^rE!@$C4DBbZ7;t@BG64-l16-{h*D&-mIWsHv%r$--OX%BDw z{67Y+-hBxY#O36c=z5mqDg%%!yTmm<;SF+;1p%Dijt3yX>XSyfC+MGfK11#APg$9M z(y#7Wt^xkqe`Ww10s$qs;$V6Hsh|>j0n#}ob4Yod zGY`?x<1+)@ZE%vrI1=hOW-2-L@BGH6!N&aOY?vG5M*SuzKGix12r!LB^W;3PH|caQ z@S2d|l2@QhDI;B8OO#Rjy_N1^8LTEFJY!M_RIBhsb@DTs>g0Cg!DEvmaTVaLQE6US8O7EPM-4kBlda z;Ka%s-tD!l`$OAkZ(Byrv-3Fd2~EfW{3W_Z3W3l}W)_jVlclt74z~kM)P?iK(TTw{ z%}c3ZCK~ACcLJPv#PMSr$aP7N_+d5=f^kE(Qz3?l=@DLgS zUC{4nP=T(XYJ?9eu(9jZ6HEdE1LP4fcfb~7;txu%wqeBT$b4SBo+<-&FV*9#-Bk4 zB@Uk)6+y@1&YbBKeeY8MxIvP}`J;AEy=wwAFbr`5=t}}_FQJkWisWWS2Q>6Kjz~Q< zW|6QLnCMOaFT6;EoUkb_S0C!W6izDWXozQAwGMZt{53otq7_XMOw-;;u77E2N%cXP zqPB(cM#xU{;f}T*kU3l&N*m|J4vU*Y$)*C%D`dHjHfQeU$GLlOQQ^|J5kn+YP5Zmq z{o2%-XA#FvWNlozWg~igW=Oy*wUg3pvgy2ACCKE12F~wSPNyO- z>wA0Q)#T(tndxsn7liW252bTAXk5!MKI=U*z+DO?@`G-P`Ln**UL5=ib#?>-dZCq| zX}Zv5`#~CS(H23-D*=G9?^Wmp?+A=mi!2rkkP)r225o>iKe^Z65?h4_;8AB>*Q)^B z^pBZ<23aT)AqwT{@Q-}#JrDFel0s2^Ci1ORPts*Xm>UG*Q8ue?L(tSIHoOrvrFyqA zr&DrJQVMC|W+DvpxDJI$7z=V!{UFSbQV_^qs0W-L#&da zlzWrMG70s9N~>$=!j1bILrNuMFF(vO94-sYdF&LZRe^su8Tjv3ZvyA$2=*mo?qQvj zSNB_?wz8lk1S=Dd;g}=TEwytmMi4qq4{r%06+nH_^e1CzN3Ng!Hv0FVZ;a&sMi-i7YRm;AKYME2I^P^i6(@ej10!`t`mVbNi^l$D z6&tk-0l|8~?&G_A=+=}X47Yv2U4*h3wgX!!aJX9TQ7=9xc)#d8M&B)T%)G`tC3ZYu zV2a2fP(g!}>3MDEf%F0FWEEG|W+7pirj0<7C8Yz9Osi&txtUnYddXy+)JW@lcU-PO zr>2@b9q)yPQgmxTbrU59ijtF>$`MKd3viYlXIT}Z1ZTWpSE)8|N>whi7qR_hZY@Ksa5VRFpGX^dVKP9@~I&K(az+>gMeE7eEC*x zD~CxAI`w%e@IGw0mO9FGZ(!wK71z2+zpq z@LWG=Ez3HYv`aPgM#nH1oiYednux!yS{+CiJX9?x97_bhUZ;~2!Y|%ZN zLk7|(wyDgy*yvfJkf>RHNYgfi8&Uq+$n^RNa)fSkHL(JddXONwTGc_h##~34vZx)q zpSOR;pb@`(kRKhFd9rbFKTm=;67Vr*lcBaVbFA@rNAI~ynjCRcZoUa_@ze3^oeHvJ zN656}$sf1Q7q9xT?|RpRcEG+tSY{>qx_TewqipY9(VO9v^ovDMI&ao2UU)mRqTYVL zHl+4fGwa~H0aaLJm&jtzr_d~jt%f1AJCC~Jf*@JU!00`Y%_^I=m>Ze4BgV9v{pyTC zfpOBiJ)OrhDKPxc5Wz~2qFR-R`AG`Q?F}K!)x%^TqsF?q?FKyiQxBZG5GA0#X!S!6 z{<4<#&p*V)eYOU^matkNR}8CiMN8U+SM(B^W&0&wBdE;lWLk@6AllxBxwto!V~i#W za)(*ZOFbSr&#|c%8N3k`uuFv5@uhukBgxYNg>%+AuKxyU{61b>=c}~YlXL^YUcAwm zcAhp-R-YBdn3*4%qn^ueg;Zw-Cr}kJipq=ZvYgs6(v_ARbKSHroCwsKtvS^~W|(__$9-N}^g`!aB^;-x`I^dq}E4YMy; zO2@Gab(x0i)fq?W8BHfmlQx4D5C;f5uZW~}V%kk+LaW|Zgy#vzIy%6{_4$~vd9>wPJuEmd{PGBKRe@1CqgZvWo(+_;Enb7lNA=T^fk z)BEPG3&o9jiIWOJ^g!wbO_#6WrMHzbKaC}~8~^Wh%@S0l^8}0(_vl0_+u>yrmJR{a z&>K$nsmXH)uKK0 zayXKq@E~R!(;m zp*|LWCl~F{L0`WYzs^vQxEw9YJ|mia)HUo|{f(V*aKrL&cq}ZO<;he^Y$R?&FFuSA zmQ0}rqO;iCoii|P&FWBV*RmuYFaUFiozbH(! zM6+&Zv0kZR$J>MVhAh?7l5+?dxHaJ|!Lo}Ht(pXI2pI(PGp#Q^g|3S_IFTC8p^-fl zb67eB$(;T2ME@p@U=Xr^$N|;XUR_^5NsG`{ z&`q^x{{RHA)|eJWcuDq!?I>ZYGtR*0rdn>Y2^rdxDU{`VQb^tGBC^6Wu4>2kG5MVJ zTv0PqB5$DT<0x%P;G5NFQSDxf4BTkR5ci^HIidIgVro%nYnXk{os4(n`X~j)eLNOk zZ(pN~W9WBX;Up%&83Pu30R2>RVgf1zyP`WklvCTS2H8qCKTkY#9%JlH;)lQ0Dp`@X zG8vATT;2g?IC{Ih2Plc*x&J;jlsE7j`Wl!~4M$0ZZcBHnZ3dtQzBw#(10$}VJCi8D z@1z#ido?+i-V;aI{`5AbIi@5+R@rq~Ur!di)|!2Y^0MYdjKbNI8!~%VC^rSMA%WB@ z4Up?G30iYU!glC%>MH{7oj_dRytcBf8F6`Y4ql@k;TGP9+0RN2t)>zlso+Mzm4Ii9D92hTnZ#OE7m4)1gb;UErr zQ*+97$;A|x8*@uYa>^wW6f&j(wBFRH>nqRGuYXcP;oXn(w6C8gV+jTA`ts^yo>%kN z-Hur#}^|JuZWy5e4Lz(!JHpI}ZZBJT<*XmBbs24U=~f5uKP zg3N)rLjoBeOy;^evHJ?;%j^NM%K1ewvUjm^BV3m%X}3mUk4IwUOJEV2We6>Tu#EYu zqccHEdG<>LJ736^t(OW*Z_l6Yr_|Mx{#^+{7D@A}?OBmLJB4GGu(5ulq86jY*bq`6&ST;h`1PoQSVL?am>ulo%inb z=zwT_1b48v_?#i5@vNb=N1-DPyBdggZ7%0(vf128b~`PMeqtVsp3CN2bz3jAD&5~M zftlIzUdXMGW2coXP`6Xmz`Jd;z+SGp{dHiE45X#KE~Z^|s>5?#?4nE#%AUkXEM@c? z+@yF}(DX>w-ck_P@)}@eM^GQ*>n2?oC`V#`BIJOHURE^C6|iv&|5J(uz>eBzbh57p zRum2(hcL^(2l~PGwc9tbfqy6`dQx{;JHyIxxgt!$FF3n7Siw;)q8OeTDEm8 zWT<6VtQ4qxsg?}0Xe`94u91B=WW*w!zZVf46*JUKos!mDUbI`7Q8~{}igJeN0`>@7 zSg&s3)-ydKwv``g56%fU#6sVqr}agDWlB92#%c3<8>Ox6My6NFDG;gsHZT6G^)3c! zlcN<%P=XPVwLT1={MiFa^@q910Mezs{xsI5BbZXL#sj%O2(INB#SCA8w7S}w+#*JK z21_SPDTbI$fpF{5YM z@_S;{uiEVnZ61t2#xFxL7YF?OPz+1Cyy6bQi|Nluj;O9fmp@b$T~`0pAP#GD}>Ag++_@WK5~~gw|8zYB{1VR)EwKad@x8&`ot(Ruf$& zQkhsr2x?S*S_tDuXwb)vT|6?k+@C9l47l;GgD=!Ha=P7)+X z(Ltn+c)`*|#bk5j3{2`~C8#nE(6kIbZvKo|C%e^8dfe^l!x9X^%%mveDjieKJ~%<6 z4yt=HO2W<>@^L8>_5iNE5*|(BhPA5Iuv&>FgqO%8M5z&0!V6-)l4=syX)96E)KXuL zh89_dkrtD5W#j{j1$x_|Xi;F7KCfSUpdwNC;!wlkkc|Gz5qS&zSMvzg_B9_LjcOwc zmvQoMFK<-?k#a}kx@T=HQ`}UNP9sdu*>Fs+i!tVC%1>w-&@^=Te>Qe-p!9Uc1ONQa zA!2b%&wS>h|HFm`$>(EF4wNotI;D4f?tgkLI2}5#p@#cv`L^kny^@O_DK)Qp6sZ!) zH21=Ynq&Z8NO%qG?JS53VjdVGWKX@EG4ZyS;-*vzSwikWMc+37Z?Ejv1S;%40J z8wBF9PA|poQ|HHYH4p2?xs|(|Z;#AZ|CH5i`z5!&ZPOUNoX>t$?INp{Pv5^|)4Fc^ zRbzYh96|HJXvU%Lr`0^K-Lv);f9v76cgiiQ`OA=v#iElZ(x30Ee9fJ?<#n9z>;KIG zdlW6HK-z61toWFEHi4h_ssL6Jv%M;5j7wuWR%s~j{g5Gdj(gyr^387}1@EphqTiPI z^LGEb!`nY`5sdQxziW2g2is?i?+UXQmVi7z#UK3E`ghGv+x^IBLLSJNFHU`no1bZ! zXa78P?)#$m*JLT-hxJ! zKK_rCArkj@yv4oMp8WL%i&aT(u{?dubrnT5>NC0$w#wwU zZxgS-`^KC-tvQF+b?k9iJbBcaTfMuj&tIIvdF z)Icb=mv%5do_a8{xZfU!HmxYCLIPdyW17ys8n5Yfk7VXtPp#*iKxIk1~T> z45_?$XKbnNP-E9+q?95{4;(Q6X<+a2-XzAP3O&T) zoLa$_);Q~$TyIhm^Cf<2BY2YKm*9DG1q)rT2TUIkiUAe*v9>+GN_NTfnhm?+qgNl# z34R9-mqG--9X;uLCBphcrb26Nr8y(*_uUv6JJ{QjUNd~6w%3j$7u%p@Xxxr?Cm3*w z&TsO#Ug%o`40%-4a7gJSGG%zcj#T`aD0+pH)Bc&??K*aQ0 zpRDHps7*h1oR+3GpX>&w-OO>DKhC_A%7W#mgJXAHMM{{3kfs$=9yhqgh+{SuJ7=ho z1jF(igb#|jAFkbadbi$8Asy?zJyB3?>O!z%bR|XGk?&J6ixo_`TPBGjWl+U35K*4> zQW0HUtgDrz!BQ_p;`U?MZ~!;{-tQ&@-v{vp9q$(2{?C!Y|5m8q&S^-?i+>a7N>9+? zrdZxP8^!+|k5b`mM6gIdWWJ9dGppjgjT*S@Af1aY8lj z61Q=N5%29}A9R$R)~h9U{mY|T{M(L@wOYtFJ%Ow7YN3V`K`x_)+uz&Cw)7U`5r3aW zKlEuolUl?r;8eMx2hj=A*J{mN^WT3#Q3&6ey{(DD9Pd+TAc+i-`;c)E%CI-CP6|2cOh9QJ}52Pr4`ey$qM>d_jFk! z-I>ozySz2VnBOok-9m&HPucX@+EVtfAUpCdRT`509I&xHh>mC&&#{%AU9H_!E!LkH zsyIf@Y(B3q8^j%HlsMjH)q3yh;1J}GNMS$t2(cP1Hp-Wvi`1$@q)-^aDmCaRPXsTL zsUsLbIU|nD|B)5WXdCFrYPQI87%ksN;dL-{x=w~Kgh-Avy|c`9Dkzj?%`^*mnFce{1e7&d zh8JqDS)k7RE+>{;^Enz$5s)!fMw&Oo7+FZjlt(gBGK?YKOe3)Mrgk9pm}<<%2!%ct zsh#rWMYg1^6%K11nE>8qn<2cdtrTGOTvpIoVO%wY%XG5X#qErtLT<1y)nsTSYwd)_ zP^h_5&ae_yY>Jk105PfN+-~1r^*{Yb503Ocw+U#xV5ioe)e*f9tO5Wu5&454LG~I| z(IxYUq$5UQYSHKHKc;QT#RMaJlS%geknXI5M0aMD&bX*?W{rkfmvz`89v@q*)fEy1 z{3t=A!xr;-*dmQCisu&UyII=o88sTu5Dav)_4?dkp!tyucC&z!D8s7#@FY>nS>&*s z0DDoZ38#m16|LD#c2;&6JJz;|Dt7W(G_t%BRbfk2KnuS#q5tFks1&=6>SVy~3`91h ze4t4K1S(Ry9J7B-T8DT}bWAxdXm zjBuDaCdi9E*!$uew{z21ZjruI@(P&yh1Kg~qOt)xRGY_Fa@JCObe3HbTk0laYBihx zk||SfQMxiT{*9}|c{?e3`?dVANPz_hRiww1v8V1MmmRi9H*Qo^S}d1}HVieW*4raw zV`#`aB%m%JLRt@jW65iP?D)SucQXz@)Q1c&eD)k?!v6yH>eVoC13Y%s;pF{k`|I{A zl*cxCr-u2z*MIt~s%9=vXzO#0DIHLbN!?nXbjq_}TZ;P5*jl%>zk8$hE%dp`!2f9A zq;6i#?XmhbQXT!*H>%>?dRju4paxFLvq$K64xexBZcgUKl%W4mc!H#n1L z#tTEl2nGIgn(C$BVFYxEV>NFYP91$nTR9`VtW|VrY_INrmXzawOldpzH~T);FvpF1 zYVeTXX#!36>iNn z^42`oTZ!=1&IG>w{sK(>sC?x)r;Ok1y6@|>GPWNFO8xvbR=&kf%2ttVn>KaiRH;+8 zmiyXetmgWpR-q;`Qq<588w~2UK_zxMuDoNbV+-la!G7Fjyw9|L8bFxqXh-KqhjlA; zkFOt}s+_Vmc@@}t7F|IwmphZ%QrJQc$?Bo}B|^#QP#yQ8vY?d+iU$-tRue0XQF6*) zu*Izjj;#e-NWhcvZkFWYkP7b>2*vokC?t_vwj(z;eaF4giMZ?^clcCQ5S(?p@hNse z=Q7(k;M<*_?Qi~eZ#vtkG={}aW+oeSJJtNuRU7t)=!j{U1+*tX{DD<2WjFBmVbcZK zZ<=+gF`t!6O~4xeX+q1Z#T6II9)I{!1+>4z@6#x1_Gcd=|!MO zz7K?hO+DTm&)XE9OI0z7z+r?Bj4gmouXq7SK45<`rMqPQddjVR!FOw)Ds{`6Lu=ym zdu^Z}?EvvEIl#j8bIFH3eADj!re+Z=Bfgp6DLJy{rGcPo_lK`5OTL%f0^5jh=Xc-y zQSvhW@1(WdtK&j@hwptKm}H|$f2dwaI#dbH5kY0r#g9Pp+?M%nuZm5F5`12b>?^D?&Q(?dwCpmf#|+7jAOvqNIy)ss&6Bx?qNtlb(znC# zs|}e$j7bo+vjTl7-$ajkEb6CX)(EL7j}E^c7oA9;{Tu-s272T3XBtVf&t^|G4$cE5 z!*7>OrX%p}(nzeBcfI^6@^W}}xz;abcy?EJf+EkDOkw7G zl*%IPuQ;_aXh3{vZXr2|X?>)##lPwox70&cI8X$xWfPG$m9!WmlX-|WM$-^SrnkRR zRWn=!mbT~aGAVZ&qC?#oV~%pBbexGQ-ej=hD4~8H7ZFxy3yHsO#vq;g=c>l6M~Ax; z@2aX@#?w>sk5D`l(ys#Eb9@{P?vcqOSSeYP-n{-NtbCuvmZapiC%X8(wsCK!{pRoW z;%FTFTMuH+b&tlQ;r{O!r)q#x#zodCRueNe?rE&I*0Z*A;k|(@-CHH8A7d^MJO||= z9}Ax8v;zli_MPf!afhY0f1#X6(`Vja1PGWh#`s`3MVnqSTt_*{4hRm9yGfT_*&NDo z9#tO>e~OLNTD2@KAU;OllGzoU+)^TCU>bHymCL487ooo1*yBcLfACvdT&7~F6~G%~ z53__uO(908ZxH@$!HvACs=}yC%qs!6{US`7(7qA`2`0ZTP~EECp;J^0r8dHnR;*)@ z)Ono(ouUM*)e=j#t7(#)6^TJM;JT=Y@UkHE`?ojZmHGzxZ|zl>uby-h`TZ9!1Yv~R zVAg#h@wOoB`=2l4725jW?{U+rF`r{HOq8#GycUEKUj`!9rL^$=Il({Z4}zc2|D>m9 zwqkrt<>yE7JgH(FIho$8b{*5d_O3Sk#Or(Q&57)lPgLt6E+bPC?IoLiumP5BG5Le> zu;LHUU&j?khQhr14+`!De75)zb(fWq+0F^5(yIAV`9xwWFGvR}6VH#<&eP+|#vWEP zN}n$eLiWn*0)aYtFH&88-da0Cn*+IcCgNuY8#8lN_T3Y-_QIgH&Bcrng2BX`(oSik zTDIFpA1`cc4=Ua~Mu+1km1YMTGjsfnw6ze|zPaeD!pCQoc1RnBws+w8y*m}v>Wv9W>s!# z$1R?s*epF9l(X+$TT({V#QS>eP31wYlZ$LkhnD8LAC6tOsm`3#yO&+Hxed3--v)5G z`ySem(yPbcJGh^>F&&P}b3GirVN-P0tC2pc+J`l2G2f_jY;dpH0p8a(-F9~U>@*-9 zb~e4L$pTKvH58n9a-yJq_2DOn3jnF=^J!pCdQoUS zcK33uADvFkbMAPh234K~uAnx}7rNw)`PfXLJU;B2B537_OeN%8S3jiZd8+z~09zQZ zvSGNWqMC3NzC<7ScoNJOZJ`GkRGYCRYCa!hEE~NYalo`NVUXYg%ZC)}fdLj1<($o6 zHYcp+A27=8!P=I!>?@?IOF{=O%aNj^x@d}sIPt%<1)iuWni7$X6Qbm9`L+IX_R>;a zIME#0lqjW3aqaK27@gKS6d05d$!skw1i5w~2#l`FZUqpDpFjFYHOK;M4(5-KQ%z3!2%{0O6#)?h_{>+u!#@+|gVjwebUqBGd*Yze!T zOJdQa559(h!)?g+=}WpEuj^c2H#)IZf=(KTLV_~riDXLFdh7Jsm5C04npWqrtR|Su zT?DU1k*d*&3QBlQz2B^leaxY6z$+AWc)Q-7CWITn<#mgz{LW*cy6E9Akk8ZWJ5j_q z8l-94G0*if!!4$$hNz(pCD*r+omO&{gpCOZ9eNXH-Cz?<6#)>_a@}NH%h8MmmW8gC zXfR`H6lUfCPteDvF};~4%rAS$3D@6YbTau5`Ob2gkj+*qx!)|3V`O{>N{`1=A{%^$ z2Hu}#)R6RgRFGb%tyboma}6bKIibFwpp$CXRU&Lkeo3aHmNLKe&&Z@Z(UjbV7v9qi z@RDOEgTUq~Bz~qwo_>)u@2~w*ApGK+Po(l>e8GgB?PRpfeN@v%w+q3IYHGDfP3iQ6 zx;Zvu8{O_Db{g0z0f?92-qH6sJO)X83p}mqM9L{#Z}=;ZXcc5x-oA9L1RvDo^llBj z;sUbe(QplJR(IEj0p|lI4RV~ySk|J02sZX?YoNU3H7<7nFyaK-~3|1OhB)fvn>kxb6a zcG6{;mz`W8?3WUYqI5`M;yY6-GlgwHpLrw6JlNF7%k9^EoT7B@RC zKQ!^dl12cQ6sUFLnFwUR5Dl2~$s?K=V(s9owjxl3O-X;Al}nb+jtpu-wVTe=h=giG zM5y;%xC{OEpKL(zENjLcGSgyp0jq46MFYXKXcU2RL@ChcF@a!sVf}~iHcB7>Vr4c? znW=>7(E(Ufrg2slo9Tv|&{nu7lRI15**0zCnR0m=uU(f%E{vgn7G3qcVSnY1N3p-v zkSQbnp0L06*MsPS4HX{7T&`IqS3dvVML=^>7h8f>DBvO9QCA_4SHwE%X%tc@iqT6s z1V^b7h!To{(n2oId~8{vK=>b8W&>0;kO>`9)QOH?P7p5A@dZrg|F?#!(X!@Ixfrj^ zi}-;Bw2u5~_Jd0we{YZn-NU3Vinvm5ynXDPfKs1wy=7_2;mxbw&ET@`u@zUAZ~muI zaaNHMEy%kGv4d1}(f((HwCG9gOG;;?UVr;om&>vGiW4 zhAhY>rTmJ>=jJYl5u*qfF$CfgI+VInm6!KOdf#$~t%^J%JPC=F<_Y}HZR4DHn&Wb; zyiA2YpYG+P0Z*1F+fKnx64+$z!ac{nDMip|X^>-i{y;J@ddUH-WebQ!8V;o0{8xOC z3#xf&0J#;{T`|AxS|e=Nfuxo&>tCkXIvV1|Bd?$grXjb7eQOya;5TV3C^EUEM<-Fh zh6gcp6|kdvyc-zOyRCbue@DWWs**@qS)^w9y@G%fUg<@wkuZ2j0Rq@uU)nKw-lAQ~ zX6&civYJiX8n!PB1;B&nPo9kTdOQ?h1+AF^=t`H%WCS1>-)4@|<1rbo-?S1R=W>+; z?aPLeG)vH`Z%fZyT$wG6v&Qzh*~3K)h;rLWkg=C1242lzBF$S5Aw91fI5}ezuV#Ha zNoDNS$zx81{U_>PAynyr)F^WQlu`bie4)Pn1Q@0_q78?NuEcN$zi@P<8{ ze;xY{sBiD-Y{>fSWhesS@`dS{tWee^D;m@d(1S8T21K2&D<19Q^Z}~!OsBG%)Vc%8 z5PTRN1ysjAaYT6Mc=zXzkZLns$K_3?S4HX%QP;bP0Lzu0`l~(Z#Q`D5&tyI}UJy9x!68d? z-dh!PAA#ZOpm@E|&94~vO*Su# zSa!b0RVbG+P!A)tvr~UM9#?hb7mB$zlWFN=^CHXvY9OY@V6G+Vulk$M5Iee;W4HA3e1)_gt(Deb z)cO(loDU*4q)%Lb;L42Hd`NpkR;=8+7&&pkdEkTYz79*Ls#pe<%MdD{uOtRgX;#s%%G z_*1PXmtnCbS=NpDGBwrwU)yp)V~2e7mr-eKXLCUd>npe~D|bu>w5+GIvc=0gx}*zQ zI=_MPlgV|eo4TMQ`re4NtnAFTYgwPmQuN%y|w?cAX&4-kthGoKxi@{FQuW}eP9{`;8g0xIYJ_M z4A3C3sVCv^d`TxJQynx-y_;AIXFGc!jle-pEguT^p&tw&L)|%sQ0-_70@gaFMZ((V zhCz;PCx$C1Og(taHPLrDQgR5Qi8s0=;q=k_i&MmT1YAh*3Sa z%!{`qOZqYy{JdAGZb<+ppv|~wUd-DgfTnL6ek#S0UlBov`mdWgNMjH+6RpJH!Ky+F zn9eH#|8DA!0FTcnv#^z#m$gq-PI?zs52(J=29LO5oU>5|G_VsumwPNo7J$6hC`*t= zpC`fZzWzfDE1}#s>k~o74zx>6DUn?f`N^y}Tk^-q<9Pd0m!bnco=s(z%5vPLN%Ne3 zZ{J})=$-^HXq;O2X$86OpDd!7Uv7NWoU-XBj|#L zp2nf)Q{>7v4KOmf^0}Yj4(JCo-VQ76j&7p0~fB|_J z4rr`5H&X0 z{pK~bUms9{&Y>r^{}=%l-0O!u_PllfvuER50(Z*);b_8@=QmL83p4(BKE6WKJ;X=4 z-YZ-cjilT?TQt_l0kV}9y~zUSTEKiFz1R;0*!ZmF3z&pb`Y0nmdVXiYl3%)}C--}4 zXZ#0p;=3N_=#&PGQHc(5>2R}w+XnIMZL;>UqM&;y5P&ZdW&KwG;@lnfkB2-Uv9)SV z`NwBBfTQEvFc#Nw;**6Ru&A+_G>ab-k}5KP!+ixKR^iy(xy%lif%+frst#e?A-l6u z2*Zx~Nw;Or3jRlVy6*Jsb0;buk><{~)aW$pjQX!Df6Zsdoc0|?-d|{*Y4RiauhAtD z*rF4A?x@OTwSp1foxmRT*mDc-abg_@vRzH}{WPtj?4+xIg;RR&j>0Cbl6eVFThHUw zIU5zSO-Vz3FJ&i+~=l`CQkDF$tx$}Yerov3^_#5y*d zb6i}xmKBjg5S-ks4RavUo4*`MjH#q>p^8@^HF2?hv z&b|rmBkEYfMQ^i^BKd1#FYg@sjjhl_D;l@To@x40!xE^cC0K5&$aaQLsO88;QY@6n zb2mM^%oY*=*|FvKWe8_{jHD3dQ$7p(O++d*o649+@_Zb$^}zlSY?|Zaru39VeYlP4 zTrVvV^Y%?u>P!RTx;PLRbq~yNfkR;(bR!YqGmk7p>adSZBP8sUgh`JqocE|hi zh3}`$OStGrBK6k;%*P99K8zi^$qm|O_>L9Ql|=X@*9fawvD~^j`O+O)gwBF?QW?_z;SoRsMWmsQw{K!BSwT#V0AhU6VA`Y{bJ$eo2c|ga{lK z3uw|v+-p?azKop%JlKcp`&~CybYoQae5i1dTx^%|oKQyG3VYeJ{U*X$g^m9^9$uvze;Pf0XO^7`j zwadd8osz1?g;JOHg6g`R;K$R%9Hhmdt*HJ5aJ3N02)GEpeQtTbSA?}b5}}lpTs7={CW1*k=xx-R?n1FC=2^aF>f2WV zPeT&*pm%2{)XiOOJQ|+E=w5wdNdI5=sK@)|XNz-HX-a zA_4-)hE-Q40i#l}g}F(G*8e82VAXYR^KeV_D9+O5cGfc~I19>m(XjOxm9q3WDFYD4 zv*Gj4B*TmJ9C9gEkg$I#9;Z#SO?zdP9AAn0BVU93XQ#hb+S?ArbLc!Z%1 z-D&W^qL?w@T%Fhbwz6{J<$Jmc2X7==A(XJz(>X{dhG^D`#?L>ii@`9p(%%rw;$t1AC1`U z{H;I2;w^zgdG3{SG(!D>-+BCS&-3umngHe=+Ni#`a!M9+HaZ7X{VRE6NXJ9&rP3}$ zbtihg=Zzq4oqNyQ-befjwBWgh*EG*C(9RD+biD>q6(@Q~A{H+BFX}n0LRW)X>kf zX_{tM;*++8(y7aBnWA+w_uA}>>P6>58+Y{3hh2J{b!wubCJ5OS-QO>on^x3FeD1-Z z8#m0(pM#&6Z7?M3K5~7_OBX47t|f2y<6cJMo@QT*#`3Bay2zW)xA=qd-Ia)7AN3bNHDFD!|2g@2d#0>nNGiY zHB3(8*0kDk+;0k(TEXAFtHyDuC8FIqn%&f)wn^TVEH26AR0KDw;rd&1;?an>w*QH< zzwt><)j{mbpI3k2BKBeTfAoUVxu(mXk5^`J6)k&qL^6XDX9+{Z)%6`#o>zFMFgQrq zW#l)IwmBO{{rE@A8<(|H{5cymLsJzHw|^nsb~72>_GJ+nu85Wu-SEbQw@G@u{r~p@ zi`vjk%a{N≶M9Zv|5`G?V+t`dH%WEMXqpk;_3Hk#c)5bow}^>GHdOg=@5pYx=49b13Ly zrJynzDRebu8rnRSaDCBo@|9g53n?-Toj%;)7@=UY|Noy}Ma{<^CTZW`I9PGat{6t2 zaDw4J3oUfqrNwG{*q4kXjQO#)d%E?I`6unq0@g?R`EPa45Y|xpiRX?D^@^QqfPjrp z`1!tA9;wNGs_VH%HtUBo8*1_;v~g)avtfdTTKYQ+w|_T@R1|@!z4MWbhw@XQ#{r8n zFBZwGL~*S&Epds65DN=S9LDmC%OD``N?Ja3mq@-KYHmwkg<5GJXlu`C1U~hF;}GUt zEV_svDDRB0pxY;h0iVB6!+t9MoPjoUN2{tnNvmp71!_;3|F6OefCDX3EgVYSHa&Y~ zU}M_~aPglu-?Am;VW9ar%IVbGkq@`{Tq5wAt!;iU^4x0?c1udN{X&%ux4V&|KJ4W8 z^-G%6%-Mk6r|NGgPt?6Gz6|&!zRxhaV4(F`GZ8rK4j__!PX?Q7^;*CQ1mh5%DvR6C z?e!IxGMT8~xw^^9NiPO6=pQ@SRODn~Fsq8jD|VmScW#=CFmzog>dWa9ISWyD>bX6* zxnZ#2TwN0;af`pj^X|5h-UR+^#wtJ!B@tKiK!pf5VjK5!fZLt zzX!?qwZ#;g@k9fI%Zc#zkaZg@VAO57d!5O3Ue&0UhOx8iALeb!OI zRvYFgz{G^aMMxIXA9Q8%Ks(ns{Ng8LwsDMRXV9_!HbeTZg#-D*^A&&kWc>8s7s|rI z=ynSoO>Z_is~m>%blt}gX#It_>e2=$ntV|mjceXzzfgYM^uWLH4|qn@T1Vx$y+(mB zr_oTl_0pJ8ZR}4L)pN;gX0*r7gHMr7oprWF%6?*dA?da-61JtJNHWwP^#36TIN#Kl zHX65H`VqI9GB?_ee-?H!Yb?FpyYadu!+UaImNKBnpF_sZf6ay)B7}^R1hodXNP?eK z4UhCNG=>^Ra(w)t-DekO(;#W^pCZ0-I00f84I3?O?7O zB%x)J$UIIl{lRxlFHDbkes}4Xh27aeZ@lufb-e26$_f|NxU&YtVUJG#2x>BxrM_VU z1LCx!(BL?8gDF{Vq$J)xNc>yL)$=)7I*g|%)(&0-;j8CsUSvGa_^S6DVMpH zb8v0T>G{!ohHICj*>1fftNM+zZtws0KCZLv(IK>C_QT1EH@fD(8$2iPv~!>Y4cV!P zSZxtr!>L43HPE+4<>ftO;-5eywKK$aj&E__@NZF$Ub2O545&GURXRcHZf+@4Q*sxY zWp376swn?@b?YH5czxG41HZOjt)n5ymnfWVn}~l0v!W9f09Qb$zl@4>j!2BD$PIWy zG%tHq1co&qIS~ddbB3;u@9Dn~xdsYnr5s8^`W*i3m@VDEnOB&F?o#)Rs5v1eUah$w>#9 z(>0sd(bH1S1!0KMO_Fm9-(30B*tAvEi!I8bj@kN6Z10~`=5`eh*Oh@TSgc~GARo=W z<9@k$y19A1xpq3jbDRG4LD38!4XW&4?>FThiiaoIiVSTRo?|YzPPb-muv!>myEIOW zt#-bt4&U((ZdDWewL`sy(~|m2`BN@QF+Q{|G9ZCrd6ta$KC*E*TQ_G)_3NXw*H*CY zbEL^@$wN>XGaLNe4bu&0*GJMUg5zS=CN)LQyqHShcMq=mcw_4h9+%ozHC=V~`$%?N z`DWW#&TppMgR}4%!g!nK9J8-_y1Mk=F&oUrC@E68`W@5@I(HpHbiw(p1ld9~Keub^ z`qq-^lE(GMES@?`16xSt_yAA?b$A0;omip zd;&xiYAZP+=TTDO@|)ZHN*1!_{_wQ@i@zy5-UG{`HCbB7dqN5AgmRL@R~5 z-KAmZe7J3gow^U;9@e_R+QBj&j{H=={FCM3!&hwmwI9#NDh>OjBmRdo%0A!wRKaXY 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

    + + +
    + +
    +
    +
    + +
    +
    +
    +
    + +
    +

    MEDfl.LearningManager package

    +
    +

    Submodules

    +
    +
    +

    MEDfl.LearningManager.client module

    +
    +
    +class MEDfl.LearningManager.client.FlowerClient(cid: str, local_model: Model, trainloader: DataLoader, valloader: DataLoader, diff_priv: bool = True)[source]
    +

    Bases: NumPyClient

    +

    FlowerClient class for creating MEDfl clients.

    +
    +
    +cid
    +

    Client ID.

    +
    +
    Type:
    +

    str

    +
    +
    +
    + +
    +
    +local_model
    +

    Local model of the federated learning network.

    +
    +
    Type:
    +

    Model

    +
    +
    +
    + +
    +
    +trainloader
    +

    DataLoader for training data.

    +
    +
    Type:
    +

    DataLoader

    +
    +
    +
    + +
    +
    +valloader
    +

    DataLoader for validation data.

    +
    +
    Type:
    +

    DataLoader

    +
    +
    +
    + +
    +
    +diff_priv
    +

    Flag indicating whether to use differential privacy.

    +
    +
    Type:
    +

    bool

    +
    +
    +
    + +
    +
    +__init__(cid: str, local_model: Model, trainloader: DataLoader, valloader: DataLoader, diff_priv: bool = True)[source]
    +

    Initializes the FlowerClient instance.

    +
    +
    Parameters:
    +
      +
    • cid (str) – Client ID.

    • +
    • local_model (Model) – Local model of the federated learning network.

    • +
    • trainloader (DataLoader) – DataLoader for training data.

    • +
    • valloader (DataLoader) – DataLoader for validation data.

    • +
    • diff_priv (bool) – Flag indicating whether to use differential privacy.

    • +
    +
    +
    +
    + +
    +
    +context: Context
    +
    + +
    +
    +evaluate(parameters, config)[source]
    +

    Evaluates the local model on the validation data and returns the loss and accuracy.

    +
    +
    Parameters:
    +
      +
    • parameters – Parameters received from the server.

    • +
    • config – Configuration information.

    • +
    +
    +
    Returns:
    +

    Loss, number of validation examples, and accuracy information.

    +
    +
    Return type:
    +

    Tuple

    +
    +
    +
    + +
    +
    +fit(parameters, config)[source]
    +

    Fits the local model to the received parameters using federated learning.

    +
    +
    Parameters:
    +
      +
    • parameters – Parameters received from the server.

    • +
    • config – Configuration information.

    • +
    +
    +
    Returns:
    +

    Parameters of the local model, number of training examples, and privacy information.

    +
    +
    Return type:
    +

    Tuple

    +
    +
    +
    + +
    +
    +get_parameters(config)[source]
    +

    Returns the current parameters of the local model.

    +
    +
    Parameters:
    +

    config – Configuration information.

    +
    +
    Returns:
    +

    Parameters of the local model.

    +
    +
    Return type:
    +

    Numpy array

    +
    +
    +
    + +
    +
    +validate()[source]
    +

    Validates cid, local_model, trainloader, valloader.

    +
    + +
    + +
    +
    +

    MEDfl.LearningManager.dynamicModal module

    +
    +
    +class MEDfl.LearningManager.dynamicModal.DynamicModel[source]
    +

    Bases: object

    +

    DynamicModel class for creating various types of neural network models.

    +
    +
    +static create_binary_classifier(input_dim, hidden_dims, output_dim, activation='relu', dropout_rate=0.0, batch_norm=False, use_gpu=False)[source]
    +

    Creates a binary classifier neural network model with customizable architecture.

    +
    +
    Parameters:
    +
      +
    • input_dim (int) – Dimension of the input data.

    • +
    • hidden_dims (List[int]) – List of dimensions for hidden layers.

    • +
    • output_dim (int) – Dimension of the output (number of classes).

    • +
    • activation (str, optional) – Activation function for hidden layers. Default is ‘relu’.

    • +
    • dropout_rate (float, optional) – Dropout rate for regularization. Default is 0.0 (no dropout).

    • +
    • batch_norm (bool, optional) – Whether to apply batch normalization. Default is False.

    • +
    • use_gpu (bool, optional) – Whether to use GPU acceleration. Default is False.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static create_convolutional_neural_network(input_channels, output_channels, kernel_size, use_gpu=False)[source]
    +

    Creates a convolutional neural network (CNN) model.

    +
    +
    Parameters:
    +
      +
    • input_channels (int) – Number of input channels.

    • +
    • output_channels (int) – Number of output channels.

    • +
    • kernel_size (int) – Size of the convolutional kernel.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static create_linear_regressor(input_dim, output_dim, use_gpu=False)[source]
    +

    Creates a linear regressor neural network model.

    +
    +
    Parameters:
    +
      +
    • input_dim (int) – Dimension of the input data.

    • +
    • output_dim (int) – Dimension of the output.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static create_logistic_regressor(input_dim, use_gpu=False)[source]
    +

    Creates a logistic regressor neural network model.

    +
    +
    Parameters:
    +

    input_dim (int) – Dimension of the input data.

    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static create_lstm_network(input_size, hidden_size, use_gpu=False)[source]
    +

    Creates a Long Short-Term Memory (LSTM) network model.

    +
    +
    Parameters:
    +
      +
    • input_size (int) – Size of the input layer.

    • +
    • hidden_size (int) – Size of the hidden layer.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +create_model(model_type: str, params_dict={}) Module[source]
    +

    Create a specific type of model dynamically based on the given parameters.

    +
    +
    Parameters:
    +
      +
    • model_type (str) – Type of the model to create (‘Binary Classifier’, ‘Multiclass Classifier’, ‘Linear Regressor’, ‘Logistic Regressor’, ‘SVM’, ‘Neural Network Classifier’, ‘Convolutional Neural Network’, ‘Recurrent Neural Network’, ‘LSTM Network’, ‘Autoencoder’).

    • +
    • params_dict (dict) – Dictionary containing parameters for model creation.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static create_multiclass_classifier(input_dim, hidden_dims, output_dim, activation='relu', dropout_rate=0.0, batch_norm=False, use_gpu=False)[source]
    +

    Creates a multiclass classifier neural network model with customizable architecture.

    +
    +
    Parameters:
    +
      +
    • input_dim (int) – Dimension of the input data.

    • +
    • hidden_dims (List[int]) – List of dimensions for hidden layers.

    • +
    • output_dim (int) – Dimension of the output (number of classes).

    • +
    • activation (str, optional) – Activation function for hidden layers. Default is ‘relu’.

    • +
    • dropout_rate (float, optional) – Dropout rate for regularization. Default is 0.0 (no dropout).

    • +
    • batch_norm (bool, optional) – Whether to apply batch normalization. Default is False.

    • +
    • use_gpu (bool, optional) – Whether to use GPU acceleration. Default is False.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static create_recurrent_neural_network(input_size, hidden_size, use_gpu=False)[source]
    +

    Creates a recurrent neural network (RNN) model.

    +
    +
    Parameters:
    +
      +
    • input_size (int) – Size of the input.

    • +
    • hidden_size (int) – Size of the hidden layer.

    • +
    +
    +
    Returns:
    +

    Created PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    + +
    +
    +

    MEDfl.LearningManager.federated_dataset module

    +
    +
    +class MEDfl.LearningManager.federated_dataset.FederatedDataset(name: str, train_nodes: list, test_nodes: list, trainloaders: list, valloaders: list, testloaders: list)[source]
    +

    Bases: object

    +
    +
    +__init__(name: str, train_nodes: list, test_nodes: list, trainloaders: list, valloaders: list, testloaders: list)[source]
    +

    Represents a Federated Dataset.

    +
    +
    Parameters:
    +
      +
    • name – Name of the Federated Dataset.

    • +
    • train_nodes – List of train nodes.

    • +
    • test_nodes – List of test nodes.

    • +
    • trainloaders – List of train data loaders.

    • +
    • valloaders – List of validation data loaders.

    • +
    • testloaders – List of test data loaders.

    • +
    +
    +
    +
    + +
    +
    +create(FLsetupId: int)[source]
    +

    Create a new Federated Dataset in the database.

    +
    +
    Parameters:
    +

    FLsetupId – The FLsetup ID associated with the Federated Dataset.

    +
    +
    +
    + +
    +
    +update(FLpipeId: int, FedId: int)[source]
    +

    Update the FLpipe ID associated with the Federated Dataset in the database.

    +
    +
    Parameters:
    +
      +
    • FLpipeId – The new FLpipe ID to be updated.

    • +
    • FedId – The Federated Dataset ID.

    • +
    +
    +
    +
    + +
    + +
    +
    +

    MEDfl.LearningManager.flpipeline module

    +
    +
    +class MEDfl.LearningManager.flpipeline.FLpipeline(name: str, description: str, server: FlowerServer)[source]
    +

    Bases: object

    +

    FLpipeline class for managing Federated Learning pipelines.

    +
    +
    +name
    +

    The name of the FLpipeline.

    +
    +
    Type:
    +

    str

    +
    +
    +
    + +
    +
    +description
    +

    A description of the FLpipeline.

    +
    +
    Type:
    +

    str

    +
    +
    +
    + +
    +
    +server
    +

    The FlowerServer object associated with the FLpipeline.

    +
    +
    Type:
    +

    FlowerServer

    +
    +
    +
    + +
    +
    +__init__(self, name
    +

    str, description: str, server: FlowerServer) -> None: +Initialize FLpipeline with the specified name, description, and server.

    +
    + +
    +
    +auto_test(test_frac=1) List[dict][source]
    +

    Automatically test the FLpipeline on all nodes with the specified test_frac.

    +
    +
    Parameters:
    +

    test_frac (float, optional) – The fraction of the test data to use. Default is 1.

    +
    +
    Returns:
    +

    A list of dictionaries containing the node names and the classification reports.

    +
    +
    Return type:
    +

    List[dict]

    +
    +
    +
    + +
    +
    +create(result: str) None[source]
    +

    Create a new FLpipeline entry in the database with the given result.

    +
    +
    Parameters:
    +

    result (str) – The result string to store in the database.

    +
    +
    +
    + +
    +
    +delete() None[source]
    +

    Delete the FLpipeline entry from the database based on its name.

    +

    Note: This is a placeholder method and needs to be implemented based on your specific database setup.

    +
    + +
    +
    +test_by_node(node_name: str, test_frac=1) dict[source]
    +

    Test the FLpipeline by node with the specified test_frac.

    +
    +
    Parameters:
    +
      +
    • node_name (str) – The name of the node to test.

    • +
    • test_frac (float, optional) – The fraction of the test data to use. Default is 1.

    • +
    +
    +
    Returns:
    +

    A dictionary containing the node name and the classification report.

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    +
    +validate() None[source]
    +

    Validate the name, description, and server attributes. +:raises TypeError: If the name is not a string, the description is not a string, + or the server is not a FlowerServer object.

    +
    + +
    + +
    +
    +MEDfl.LearningManager.flpipeline.create_query(name, description, creation_date, result)[source]
    +
    + +
    +
    +

    MEDfl.LearningManager.model module

    +
    +
    +class MEDfl.LearningManager.model.Model(model: Module, optimizer: Optimizer, criterion: Callable)[source]
    +

    Bases: object

    +

    Model class for training and testing PyTorch neural networks.

    +
    +
    +model
    +

    PyTorch neural network.

    +
    +
    Type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +optimizer
    +

    PyTorch optimizer.

    +
    +
    Type:
    +

    torch.optim.Optimizer

    +
    +
    +
    + +
    +
    +criterion
    +

    Loss function.

    +
    +
    Type:
    +

    Callable

    +
    +
    +
    + +
    +
    +__init__(model: Module, optimizer: Optimizer, criterion: Callable) None[source]
    +

    Initialize Model class with the specified model, optimizer, and criterion.

    +
    +
    Parameters:
    +
      +
    • model (torch.nn.Module) – PyTorch neural network.

    • +
    • optimizer (torch.optim.Optimizer) – PyTorch optimizer.

    • +
    • criterion (Callable) – Loss function.

    • +
    +
    +
    +
    + +
    +
    +evaluate(val_loader, device=device(type='cpu')) Tuple[float, float][source]
    +

    Evaluate the model on the given validation data.

    +
    +
    Parameters:
    +
      +
    • val_loader – The data loader for validation data.

    • +
    • device – The device on which to perform the evaluation. Default is ‘cpu’.

    • +
    +
    +
    Returns:
    +

    The evaluation loss and accuracy.

    +
    +
    Return type:
    +

    Tuple[float, float]

    +
    +
    +
    + +
    +
    +get_parameters() List[ndarray][source]
    +

    Get the parameters of the model as a list of NumPy arrays.

    +
    +
    Returns:
    +

    The parameters of the model as a list of NumPy arrays.

    +
    +
    Return type:
    +

    List[np.ndarray]

    +
    +
    +
    + +
    +
    +static load_model(model_name: str)[source]
    +

    Loads a PyTorch model from a file.

    +
    +
    Parameters:
    +

    model_name (str) – Name of the model file to be loaded.

    +
    +
    Returns:
    +

    Loaded PyTorch model.

    +
    +
    Return type:
    +

    torch.nn.Module

    +
    +
    +
    + +
    +
    +static save_model(model, model_name: str)[source]
    +

    Saves a PyTorch model to a file.

    +
    +
    Parameters:
    +
      +
    • model (torch.nn.Module) – PyTorch model to be saved.

    • +
    • model_name (str) – Name of the model file.

    • +
    +
    +
    Raises:
    +

    Exception – If there is an issue during the saving process.

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +set_parameters(parameters: List[ndarray]) None[source]
    +

    Set the parameters of the model from a list of NumPy arrays.

    +
    +
    Parameters:
    +

    parameters (List[np.ndarray]) – The parameters to be set.

    +
    +
    +
    + +
    +
    +train(train_loader, epoch, device, privacy_engine, diff_priv=False) float[source]
    +

    Train the model on the given train_loader for one epoch.

    +
    +
    Parameters:
    +
      +
    • train_loader – The data loader for training data.

    • +
    • epoch (int) – The current epoch number.

    • +
    • device – The device on which to perform the training.

    • +
    • privacy_engine – The privacy engine used for differential privacy (if enabled).

    • +
    • diff_priv (bool, optional) – Whether differential privacy is used. Default is False.

    • +
    +
    +
    Returns:
    +

    The value of epsilon used in differential privacy.

    +
    +
    Return type:
    +

    float

    +
    +
    +
    + +
    +
    +validate() None[source]
    +

    Validate model and optimizer.

    +
    + +
    + +
    +
    +

    MEDfl.LearningManager.plot module

    +
    +
    +class MEDfl.LearningManager.plot.AccuracyLossPlotter(results_dict)[source]
    +

    Bases: object

    +

    A utility class for plotting accuracy and loss metrics based on experiment results.

    +
    +
    Parameters:
    +

    results_dict (dict) – Dictionary containing experiment results organized by parameters and metrics.

    +
    +
    +
    +
    +results_dict
    +

    Dictionary containing experiment results organized by parameters and metrics.

    +
    +
    Type:
    +

    dict

    +
    +
    +
    + +
    +
    +parameters
    +

    List of unique parameters in the experiment results.

    +
    +
    Type:
    +

    list

    +
    +
    +
    + +
    +
    +metrics
    +

    List of unique metrics in the experiment results.

    +
    +
    Type:
    +

    list

    +
    +
    +
    + +
    +
    +iterations
    +

    Range of iterations (rounds or epochs) in the experiment.

    +
    +
    Type:
    +

    range

    +
    +
    +
    + +
    +
    +__init__(results_dict)[source]
    +

    Initialize the AccuracyLossPlotter with experiment results.

    +
    +
    Parameters:
    +

    results_dict (dict) – Dictionary containing experiment results organized by parameters and metrics.

    +
    +
    +
    + +
    +
    +plot_accuracy_loss()[source]
    +

    Plot accuracy and loss metrics for different parameters.

    +
    + +
    +
    +static plot_classification_report(pipeline_name: str)[source]
    +

    Plot a comparison of classification report metrics between nodes.

    +
    +
    Parameters:
    +

    pipeline_name (str) – Name of the pipeline.

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +static plot_confusion_Matrix_by_node(node_name: str, pipeline_name: str)[source]
    +

    Plot a confusion matrix for a specific node in the pipeline.

    +
    +
    Parameters:
    +
      +
    • node_name (str) – Name of the node.

    • +
    • pipeline_name (str) – Name of the pipeline.

    • +
    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +static plot_global_confusion_matrix(pipeline_name: str)[source]
    +

    Plot a global confusion matrix based on pipeline results.

    +
    +
    Parameters:
    +

    pipeline_name (str) – Name of the pipeline.

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    + +
    +
    +MEDfl.LearningManager.plot.results_dict = {('LR: 0.001, Optimizer: Adam', 'accuracy'): [0.85, 0.89, 0.92, 0.94, Ellipsis], ('LR: 0.001, Optimizer: Adam', 'loss'): [0.2, 0.15, 0.1, 0.08, Ellipsis], ('LR: 0.01, Optimizer: SGD', 'accuracy'): [0.88, 0.91, 0.93, 0.95, Ellipsis], ('LR: 0.01, Optimizer: SGD', 'loss'): [0.18, 0.13, 0.09, 0.07, Ellipsis], ('LR: 0.1, Optimizer: Adam', 'accuracy'): [0.82, 0.87, 0.91, 0.93, Ellipsis], ('LR: 0.1, Optimizer: Adam', 'loss'): [0.25, 0.2, 0.15, 0.12, Ellipsis]}
    +
    +
    server should have:
    +
    #len = num of rounds

    self.accuracies +self.losses

    +
    +
    +
    +
    Client should have

    # len = num of epochs +self.accuracies +self.losses +self.epsilons +self.deltas

    +
    +
    +

    #common things : LR,SGD, Aggregation

    +
    + +
    +
    +

    MEDfl.LearningManager.server module

    +
    +
    +class MEDfl.LearningManager.server.FlowerServer(global_model: Model, strategy: Strategy, num_rounds: int, num_clients: int, fed_dataset: FederatedDataset, diff_privacy: bool = False, client_resources: Dict[str, float] | None = {'num_cpus': 1, 'num_gpus': 0.0})[source]
    +

    Bases: object

    +

    A class representing the central server for Federated Learning using Flower.

    +
    +
    +global_model
    +

    The global model that will be federated among clients.

    +
    +
    Type:
    +

    Model

    +
    +
    +
    + +
    +
    +strategy
    +

    The strategy used for federated learning, specifying communication and aggregation methods.

    +
    +
    Type:
    +

    Strategy

    +
    +
    +
    + +
    +
    +num_rounds
    +

    The number of federated learning rounds to perform.

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +num_clients
    +

    The number of clients participating in the federated learning process.

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +fed_dataset
    +

    The federated dataset used for training and evaluation.

    +
    +
    Type:
    +

    FederatedDataset

    +
    +
    +
    + +
    +
    +diff_priv
    +

    Whether differential privacy is used during the federated learning process.

    +
    +
    Type:
    +

    bool

    +
    +
    +
    + +
    +
    +accuracies
    +

    A list to store the accuracy of the global model during each round.

    +
    +
    Type:
    +

    List[float]

    +
    +
    +
    + +
    +
    +losses
    +

    A list to store the loss of the global model during each round.

    +
    +
    Type:
    +

    List[float]

    +
    +
    +
    + +
    +
    +flower_clients
    +

    A list to store the FlowerClient objects representing individual clients.

    +
    +
    Type:
    +

    List[FlowerClient]

    +
    +
    +
    + +
    +
    +__init__(global_model: Model, strategy: Strategy, num_rounds: int, num_clients: int, fed_dataset: FederatedDataset, diff_privacy: bool = False, client_resources: Dict[str, float] | None = {'num_cpus': 1, 'num_gpus': 0.0}) None[source]
    +

    Initialize a FlowerServer object with the specified parameters.

    +
    +
    Parameters:
    +
      +
    • global_model (Model) – The global model that will be federated among clients.

    • +
    • strategy (Strategy) – The strategy used for federated learning, specifying communication and aggregation methods.

    • +
    • num_rounds (int) – The number of federated learning rounds to perform.

    • +
    • num_clients (int) – The number of clients participating in the federated learning process.

    • +
    • fed_dataset (FederatedDataset) – The federated dataset used for training and evaluation.

    • +
    • diff_privacy (bool, optional) – Whether differential privacy is used during the federated learning process. +Default is False.

    • +
    +
    +
    +
    + +
    +
    +client_fn(cid) FlowerClient[source]
    +

    Return a FlowerClient object for a specific client ID.

    +
    +
    Parameters:
    +

    cid – The client ID.

    +
    +
    Returns:
    +

    A FlowerClient object representing the individual client.

    +
    +
    Return type:
    +

    FlowerClient

    +
    +
    +
    + +
    +
    +evaluate(server_round: int, parameters: List[ndarray[Any, dtype[Any]]], config: Dict[str, bool | bytes | float | int | str]) Tuple[float, Dict[str, bool | bytes | float | int | str]] | None[source]
    +

    Evaluate the global model on the validation dataset and update the accuracies and losses.

    +
    +
    Parameters:
    +
      +
    • server_round (int) – The current round of the federated learning process.

    • +
    • parameters (fl.common.NDArrays) – The global model parameters.

    • +
    • config (Dict[str, fl.common.Scalar]) – Configuration dictionary.

    • +
    +
    +
    Returns:
    +

    The evaluation loss and accuracy.

    +
    +
    Return type:
    +

    Optional[Tuple[float, Dict[str, fl.common.Scalar]]]

    +
    +
    +
    + +
    +
    +run() None[source]
    +

    Run the federated learning process using Flower simulation.

    +
    +
    Returns:
    +

    The history of the accuracies and losses during the training of each node

    +
    +
    Return type:
    +

    History

    +
    +
    +
    + +
    +
    +validate() None[source]
    +

    Validate global_model, strategy, num_clients, num_rounds, fed_dataset, diff_privacy

    +
    + +
    + +
    +
    +

    MEDfl.LearningManager.strategy module

    +
    +
    +class MEDfl.LearningManager.strategy.Strategy(name: str = 'FedAvg', fraction_fit: float = 1.0, fraction_evaluate: float = 1.0, min_fit_clients: int = 2, min_evaluate_clients: int = 2, min_available_clients: int = 2, initial_parameters=[], evaluation_methode='centralized')[source]
    +

    Bases: object

    +

    A class representing a strategy for Federated Learning.

    +
    +
    +name
    +

    The name of the strategy. Default is “FedAvg”.

    +
    +
    Type:
    +

    str

    +
    +
    +
    + +
    +
    +fraction_fit
    +

    Fraction of clients to use for training during each round. Default is 1.0.

    +
    +
    Type:
    +

    float

    +
    +
    +
    + +
    +
    +fraction_evaluate
    +

    Fraction of clients to use for evaluation during each round. Default is 1.0.

    +
    +
    Type:
    +

    float

    +
    +
    +
    + +
    +
    +min_fit_clients
    +

    Minimum number of clients to use for training during each round. Default is 2.

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +min_evaluate_clients
    +

    Minimum number of clients to use for evaluation during each round. Default is 2.

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +min_available_clients
    +

    Minimum number of available clients required to start a round. Default is 2.

    +
    +
    Type:
    +

    int

    +
    +
    +
    + +
    +
    +initial_parameters
    +

    The initial parameters of the server model

    +
    +
    Type:
    +

    Optional[]

    +
    +
    +
    + +

    Methods:

    +
    +
    +__init__(name: str = 'FedAvg', fraction_fit: float = 1.0, fraction_evaluate: float = 1.0, min_fit_clients: int = 2, min_evaluate_clients: int = 2, min_available_clients: int = 2, initial_parameters=[], evaluation_methode='centralized') None[source]
    +

    Initialize a Strategy object with the specified parameters.

    +
    +
    Parameters:
    +
      +
    • name (str) – The name of the strategy. Default is “FedAvg”.

    • +
    • fraction_fit (float) – Fraction of clients to use for training during each round. Default is 1.0.

    • +
    • fraction_evaluate (float) – Fraction of clients to use for evaluation during each round. Default is 1.0.

    • +
    • min_fit_clients (int) – Minimum number of clients to use for training during each round. Default is 2.

    • +
    • min_evaluate_clients (int) – Minimum number of clients to use for evaluation during each round. Default is 2.

    • +
    • min_available_clients (int) – Minimum number of available clients required to start a round. Default is 2.

    • +
    • initial_parameters (Optional[]) – The initial parametres of the server model

    • +
    • evaluation_methode ("centralized" | "distributed") –

    • +
    +
    +
    +
    + +
    + +
    +
    +

    MEDfl.LearningManager.utils module

    +
    +
    +MEDfl.LearningManager.utils.custom_classification_report(y_true, y_pred)[source]
    +

    Compute custom classification report metrics including accuracy, sensitivity, specificity, precision, NPV, +F1-score, false positive rate, and true positive rate.

    +
    +
    Parameters:
    +
      +
    • y_true (array-like) – True labels.

    • +
    • y_pred (array-like) – Predicted labels.

    • +
    +
    +
    Returns:
    +

    A dictionary containing custom classification report metrics.

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    +
    +MEDfl.LearningManager.utils.empty_db()[source]
    +

    Empty the database by deleting records from multiple tables and resetting auto-increment counters.

    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +MEDfl.LearningManager.utils.get_node_confusion_matrix(pipeline_id, node_name)[source]
    +

    Get the confusion matrix for a specific node in a pipeline based on test results.

    +
    +
    Parameters:
    +
      +
    • pipeline_id (int) – ID of the pipeline.

    • +
    • node_name (str) – Name of the node.

    • +
    +
    +
    Returns:
    +

    A dictionary representing the confusion matrix for the specified node.

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    +
    +MEDfl.LearningManager.utils.get_pipeline_confusion_matrix(pipeline_id)[source]
    +

    Get the global confusion matrix for a pipeline based on test results.

    +
    +
    Parameters:
    +

    pipeline_id (int) – ID of the pipeline.

    +
    +
    Returns:
    +

    A dictionary representing the global confusion matrix.

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    +
    +MEDfl.LearningManager.utils.get_pipeline_from_name(name)[source]
    +

    Get the pipeline ID from its name in the database.

    +
    +
    Parameters:
    +

    name (str) – Name of the pipeline.

    +
    +
    Returns:
    +

    ID of the pipeline.

    +
    +
    Return type:
    +

    int

    +
    +
    +
    + +
    +
    +MEDfl.LearningManager.utils.get_pipeline_result(pipeline_id)[source]
    +

    Get the test results for a pipeline.

    +
    +
    Parameters:
    +

    pipeline_id (int) – ID of the pipeline.

    +
    +
    Returns:
    +

    DataFrame containing test results for the specified pipeline.

    +
    +
    Return type:
    +

    pandas.DataFrame

    +
    +
    +
    + +
    +
    +MEDfl.LearningManager.utils.test(model, test_loader, device=device(type='cpu'))[source]
    +

    Evaluate a model using a test loader and return a custom classification report.

    +
    +
    Parameters:
    +
      +
    • model (torch.nn.Module) – PyTorch model to evaluate.

    • +
    • test_loader (torch.utils.data.DataLoader) – DataLoader for the test dataset.

    • +
    • device (torch.device, optional) – Device for model evaluation. Default is “cpu”.

    • +
    +
    +
    Returns:
    +

    A dictionary containing custom classification report metrics.

    +
    +
    Return type:
    +

    dict

    +
    +
    +
    + +
    +
    +

    Module contents

    +
    +
    + + +
    +
    + +
    +
    +
    +