Connecting Clients Behind Private Networks Using Tailscaleο
+In real-world federated learning experiments, client machines (e.g. hospitals, +institutions, or secured servers) are often located behind private networks:
+-
+
NAT-ed home or institutional routers
+Private subnets without public IPs
+Firewalls blocking inbound connections
+VPNs that isolate machines from the public Internet
+
In such situations, the central federated server cannot directly reach the +clients, even if the server itself has a public IP address.
+To solve this issue, MEDfl supports running experiments over a private overlay +network using Tailscale.
+Why Tailscale?ο
+Tailscale creates a secure, peer-to-peer virtual private network (VPN) between +machines, based on WireGuard. It allows machines to communicate as if they were +on the same local network, even if they are:
+-
+
behind NATs
+on different physical networks
+distributed across institutions or countries
+
Key advantages:
+-
+
No port forwarding required
+No firewall reconfiguration in most cases
+End-to-end encryption by default
+Each machine receives a stable private IP address
+
Prerequisitesο
+Before starting, ensure that:
+-
+
You have access to all machines (server + clients)
+Python and MEDfl are already installed on each machine
+You can install third-party software (Tailscale)
+
You will need:
+-
+
A Tailscale account
+Internet access on all machines (outbound is sufficient)
+
Creating a Tailscale Accountο
+-
+
Go to the official Tailscale website:
+++https://tailscale.com +
+Create an account using one of the supported identity providers +(Google, GitHub, Microsoft, etc.).
+
Installing Tailscale on Each Machineο
+Tailscale must be installed on all machines involved in the experiment:
+-
+
The central server
+Every federated client
+
### On Linux
+curl -fsSL https://tailscale.com/install.sh | sh
+sudo tailscale up
+### On Windows
+-
+
Download the installer from:
+++https://tailscale.com/download +
+Run the installer and follow the setup wizard.
+Launch Tailscale and log in.
+
### On macOS
+brew install --cask tailscale
+sudo tailscale up
+Adding Machines to the Tailnetο
+After logging in on each machine:
+-
+
All machines will automatically join the same tailnet +(Tailscale private network associated with your account).
+Each machine is assigned a unique private IP address in the form:
+++100.x.y.z +
+
You can list connected machines using:
+tailscale status
+Example output:
+100.65.215.27 server-node linux active
+100.72.88.14 client-hospital-1 windows active
+100.91.33.52 client-hospital-2 linux active
+Using Tailscale IP Addresses in MEDflο
+Once all machines are connected via Tailscale, you must use the Tailscale IP +addresses instead of local or public IPs when configuring MEDfl.
+### Server configuration
+On the server machine, the server listens as usual:
+server = FederatedServer(
+ host="0.0.0.0",
+ port=8080,
+ num_rounds=10,
+ strategy=custom_strategy,
+)
+The server does not need to know it is running behind Tailscale.
+### Client configuration (important)
+On each client machine, update the server_address to use the
+Tailscale IP of the server:
client = FlowerClient(
+ server_address="100.65.215.27:8080", # Tailscale IP of the server
+ data_path="../data/client1_with_id.csv",
+ seed=42,
+ dp_config=None,
+)
+This ensures that:
+-
+
Clients can reach the server even behind private networks
+No public IP or port forwarding is required
+
Security Considerationsο
+-
+
All communication over Tailscale is encrypted by default
+Only machines authorized in your tailnet can connect
+You can further restrict access using: +* Tailscale ACLs +* Device tags +* Ephemeral nodes (for temporary clients)
+
This makes Tailscale well-suited for medical and sensitive data environments.
+Summaryο
+When clients are located behind private VPNs or unreachable networks:
+-
+
Direct connections to the server may fail
+Tailscale provides a simple and secure solution
+Steps are:
+-
+
Create a Tailscale account
+Install Tailscale on server and clients
+Add all machines to the same tailnet
+Use Tailscale IP addresses in MEDfl configuration
+
+
This approach enables true real-world federated learning experiments +across institutions without modifying existing network infrastructures.
+Real-world Federated Learning Tutorialο
This tutorial shows how to use the MEDfl.rw (real-world) module to run a
true multi-machine federated learning experiment:
6. Customizing splits per client
-7. Summaryο
+
+7. Summaryο
In this real-world tutorial, you have learned how to:
Prepare local CSV datasets for each client
diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html
index 36fb9aa..17d639a 100644
--- a/docs/_build/html/search.html
+++ b/docs/_build/html/search.html
@@ -70,7 +70,8 @@
π Real-World Tutorials
-- Real-world Federated Learning Tutorial
+- Connecting Clients Behind Private Networks Using Tailscale
+- Real-world Federated Learning Tutorial
Contents
diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js
index 8cdecd2..707b318 100644
--- a/docs/_build/html/searchindex.js
+++ b/docs/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["Documentation", "Installation", "MEDfl", "MEDfl.LearningManager", "MEDfl.NetManager", "MEDfl.rw", "configuration_file", "index", "modules", "rw_tutorial_complete", "simulation_tutorials", "simulation_tutorials_complete"], "filenames": ["Documentation.rst", "Installation.rst", "MEDfl.rst", "MEDfl.LearningManager.rst", "MEDfl.NetManager.rst", "MEDfl.rw.rst", "configuration_file.rst", "index.rst", "modules.rst", "rw_tutorial_complete.rst", "simulation_tutorials.rst", "simulation_tutorials_complete.rst"], "titles": ["Documentation", "Installation", "MEDfl package", "MEDfl.LearningManager package", "MEDfl.NetManager package", "MEDfl.rw package", "Configuration File", "Welcome to the MEDfl Documentation", "MEDfl", "Real-world Federated Learning Tutorial", "Introduction", "MEDfl Complete Tutorial (Simulation)"], "terms": {"we": [0, 9, 10, 11], "us": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11], "sphinx": 0, "creat": [0, 1, 2, 3, 4, 6, 8, 9, 10, 11], "thi": [0, 1, 3, 5, 7, 9, 10, 11], "project": [0, 10, 11], "you": [0, 1, 6, 7, 9, 10, 11], "can": [0, 1, 5, 6, 9, 10, 11], "gener": [0, 1, 5, 10, 11], "host": [0, 5, 6, 9], "local": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11], "compil": 0, "sourc": [0, 1, 3, 4, 5], "code": [0, 1, 4], "cd": [0, 1], "doc": 0, "make": [0, 9, 10, 11], "clean": 0, "html": 0, "Then": 0, "open": [0, 10], "_build": 0, "python": [0, 7, 9, 10, 11], "m": 0, "http": [0, 1, 10], "server": [0, 1, 2, 5, 7, 8, 10], "The": [1, 3, 4, 5, 6, 9, 10, 11], "medfl": [1, 6, 9, 10], "3": [1, 5, 6, 10], "9": 1, "If": [1, 3, 4, 5], "do": [1, 5, 10], "have": [1, 3, 5, 9, 10, 11], "your": [1, 3, 6, 7, 10, 11], "machin": [1, 7, 9, 10], "download": 1, "from": [1, 3, 4, 5, 7, 9, 10, 11], "sqlite": [1, 11], "its": [1, 3, 5, 7, 9, 10, 11], "default": [1, 3, 4, 5, 9], "engin": [1, 3, 4], "setup": [1, 3, 4, 9, 10], "work": [1, 7, 10], "automat": [1, 3], "db": [1, 11], "file": [1, 3, 4, 5, 9, 10, 11], "simpli": 1, "want": [1, 6, 9], "directli": 1, "pypi": 1, "pip": 1, "latest": 1, "stabl": 1, "releas": 1, "allow": [1, 5, 7, 9, 10, 11], "start": [1, 2, 3, 5, 8, 9, 11], "immedi": 1, "collabor": [1, 7, 11], "contribut": 1, "modifi": [1, 6], "github": 1, "edit": 1, "mode": [1, 5, 9, 11], "git": 1, "clone": 1, "com": 1, "medom": 1, "ud": 1, "e": [1, 5, 9, 11], "while": [1, 5, 10, 11], "test": [1, 2, 3, 4, 5, 6, 7, 8, 9], "new": [1, 3, 4, 5, 10, 11], "featur": [1, 4, 5, 9, 10, 11], "No": 1, "i": [1, 3, 4, 5, 6, 7, 9, 10, 11], "lightweight": 1, "reliabl": [1, 10], "base": [1, 3, 4, 5, 9, 10, 11], "system": [1, 10, 11], "A": [1, 3, 4, 5, 11], "when": [1, 4, 5, 9, 10], "initi": [1, 3, 4, 5, 10, 11], "environ": [1, 3, 7, 9], "ani": [1, 3, 5, 11], "function": [1, 3, 5], "storag": [1, 10], "extern": [1, 10], "script": [1, 6], "credenti": 1, "ar": [1, 5, 9, 10, 11], "need": [1, 3, 5, 6, 11], "learningmanag": [2, 6, 7, 8, 10, 11], "submodul": [2, 8], "client": [2, 5, 7, 8, 10, 11], "flowercli": [2, 3, 5, 8, 9], "cid": [2, 3, 5, 8], "local_model": [2, 3, 8], "trainload": [2, 3, 8, 11], "valload": [2, 3, 8], "diff_priv": [2, 3, 8], "__init__": [2, 3, 4, 5, 8], "evalu": [2, 3, 5, 7, 8], "fit": [2, 3, 5, 8], "get_paramet": [2, 3, 5, 8, 11], "valid": [2, 3, 4, 5, 7, 8, 9, 10], "dynamicmod": [2, 8, 11], "dynamicmodel": [2, 3, 8, 10], "create_binary_classifi": [2, 3, 8], "create_convolutional_neural_network": [2, 3, 8], "create_linear_regressor": [2, 3, 8], "create_logistic_regressor": [2, 3, 8], "create_lstm_network": [2, 3, 8], "create_model": [2, 3, 8, 11], "create_multiclass_classifi": [2, 3, 8], "create_recurrent_neural_network": [2, 3, 8], "federated_dataset": [2, 8], "federateddataset": [2, 3, 4, 8], "updat": [2, 3, 4, 5, 6, 8, 9, 11], "flpipelin": [2, 4, 8, 11], "name": [2, 3, 4, 5, 8, 9, 11], "descript": [2, 3, 4, 8, 11], "auto_test": [2, 3, 8, 11], "delet": [2, 3, 4, 8], "test_by_nod": [2, 3, 8], "create_queri": [2, 3, 8], "model": [2, 5, 6, 7, 8, 9], "optim": [2, 3, 6, 8, 10, 11], "criterion": [2, 3, 8, 11], "load_model": [2, 3, 8], "save_model": [2, 3, 8], "set_paramet": [2, 3, 5, 8], "train": [2, 3, 4, 5, 8, 9, 10], "plot": [2, 8], "accuracylossplott": [2, 3, 8, 11], "results_dict": [2, 3, 8, 11], "paramet": [2, 3, 4, 5, 8, 10, 11], "metric": [2, 3, 5, 8, 9, 11], "iter": [2, 3, 7, 8], "plot_accuracy_loss": [2, 3, 8, 11], "plot_classification_report": [2, 3, 8], "plot_confusion_matrix_by_nod": [2, 3, 8], "plot_global_confusion_matrix": [2, 3, 8], "flowerserv": [2, 3, 8, 11], "global_model": [2, 3, 8, 11], "strategi": [2, 4, 5, 8, 9, 10], "num_round": [2, 3, 5, 6, 8, 9, 11], "num_client": [2, 3, 8, 11], "fed_dataset": [2, 3, 8, 11], "accuraci": [2, 3, 8, 9], "loss": [2, 3, 5, 8, 9], "flower_cli": [2, 3, 8], "client_fn": [2, 3, 8], "run": [2, 3, 5, 7, 8, 10, 11], "fraction_fit": [2, 3, 5, 8, 9, 11], "fraction_evalu": [2, 3, 5, 8, 11], "min_fit_cli": [2, 3, 5, 8, 9, 11], "min_evaluate_cli": [2, 3, 5, 8, 9, 11], "min_available_cli": [2, 3, 5, 8, 9, 11], "initial_paramet": [2, 3, 5, 8, 11], "create_strategi": [2, 3, 5, 8, 11], "get_strategy_by_nam": [2, 3, 8], "optuna_fed_optim": [2, 3, 8], "util": [2, 4, 8, 9, 10, 11], "create_medfl_db": [2, 3, 8, 11], "custom_classification_report": [2, 3, 8], "empty_db": [2, 3, 8], "get_node_confusion_matrix": [2, 3, 8], "get_pipeline_confusion_matrix": [2, 3, 8], "get_pipeline_from_nam": [2, 3, 8], "get_pipeline_result": [2, 3, 8], "load_db_config": [2, 3, 8], "load_db_config_dep": [2, 3, 8], "set_db_config": [2, 3, 8, 11], "set_db_config_dep": [2, 3, 8], "netmanag": [2, 7, 8], "dataset": [2, 3, 5, 8, 9, 10], "delete_dataset": [2, 4, 8], "list_alldataset": [2, 4, 8], "update_data": [2, 4, 8], "upload_dataset": [2, 4, 8, 11], "flsetup": [2, 3, 8, 10], "create_dataloader_from_nod": [2, 4, 8], "create_federated_dataset": [2, 4, 8, 11], "create_nodes_from_master_dataset": [2, 4, 8], "get_fldataset": [2, 4, 8, 11], "list_allsetup": [2, 4, 8, 11], "read_setup": [2, 4, 8], "net_help": [2, 8], "get_feddataset_id_from_nam": [2, 4, 8], "get_flpipeline_from_nam": [2, 4, 8], "get_flsetupid_from_nam": [2, 4, 8], "get_netid_from_nam": [2, 4, 8], "get_nodeid_from_nam": [2, 4, 8], "is_str": [2, 4, 8], "master_table_exist": [2, 4, 8], "process_data_after_read": [2, 4, 8], "process_eicu": [2, 4, 8], "net_manager_queri": [2, 8], "network": [2, 3, 7, 8, 10], "mtable_exist": [2, 4, 8], "add_nod": [2, 4, 8, 11], "create_master_dataset": [2, 4, 8, 11], "create_network": [2, 4, 8, 11], "delete_network": [2, 4, 8], "list_allnetwork": [2, 4, 8], "list_allnod": [2, 4, 8, 11], "update_network": [2, 4, 8], "use_network": [2, 4, 8], "node": [2, 3, 7, 8, 10], "test_fract": [2, 4, 5, 8, 9], "assign_dataset": [2, 4, 8], "check_dataset_compat": [2, 4, 8], "create_nod": [2, 4, 8], "delete_nod": [2, 4, 8], "get_dataset": [2, 4, 8], "unassign_dataset": [2, 4, 8], "update_nod": [2, 4, 8], "rw": [2, 7, 8, 9], "dpconfig": [2, 5, 8, 9], "noise_multipli": [2, 5, 8, 9], "max_grad_norm": [2, 5, 6, 8, 9], "batch_siz": [2, 5, 8, 9], "secure_rng": [2, 5, 8, 9], "_lazy_init_from_server_config": [2, 5, 8], "get_properti": [2, 5, 8], "federatedserv": [2, 5, 8, 9], "server_address": [2, 5, 8, 9], "server_config": [2, 5, 8], "strategy_wrapp": [2, 5, 8], "certif": [2, 5, 8], "connected_cli": [2, 5, 8], "trackingclientmanag": [2, 5, 8], "client_properti": [2, 5, 8], "_fetch_and_log_hostnam": [2, 5, 8], "regist": [2, 5, 8, 11], "net": [2, 5, 8, 10, 11], "forward": [2, 5, 8], "predict": [2, 3, 5, 8], "aggregate_eval_metr": [2, 5, 8], "aggregate_fit_metr": [2, 5, 8], "class": [3, 4, 5, 10, 11], "str": [3, 4, 5], "dataload": [3, 4], "bool": [3, 4, 5], "true": [3, 4, 5, 6, 9, 10, 11], "numpycli": [3, 5], "id": [3, 4, 5, 9], "type": [3, 4, 5], "feder": [3, 4, 5, 7, 10], "learn": [3, 4, 5, 7], "data": [3, 4, 5, 10, 11], "flag": [3, 4], "indic": [3, 4], "whether": [3, 4, 9], "differenti": [3, 5, 7, 10, 11], "privaci": [3, 5, 7, 10, 11], "instanc": [3, 4, 5, 9, 10], "config": [3, 5], "return": [3, 4, 5], "receiv": [3, 11], "configur": [3, 5, 7, 10], "inform": [3, 4, 10], "number": [3, 5, 11], "exampl": [3, 5, 9, 11], "tupl": 3, "current": [3, 5], "numpi": [3, 5], "arrai": 3, "object": [3, 4, 5, 10, 11], "variou": [3, 10], "neural": [3, 10], "static": [3, 4], "input_dim": [3, 5, 10, 11], "hidden_dim": [3, 5, 10, 11], "output_dim": [3, 10, 11], "activ": [3, 5, 10], "relu": [3, 5, 10], "dropout_r": [3, 10], "0": [3, 4, 5, 6, 9, 10], "batch_norm": [3, 10], "fals": [3, 4, 5, 9, 10, 11], "use_gpu": [3, 10], "binari": [3, 5, 10, 11], "classifi": [3, 11], "customiz": 3, "architectur": [3, 4, 7, 10, 11], "int": [3, 4, 5], "dimens": [3, 10], "input": [3, 4, 10, 11], "list": [3, 4, 5, 9, 10, 11], "hidden": [3, 5, 10], "layer": [3, 5, 7, 10, 11], "output": [3, 4, 5, 10, 11], "option": [3, 4, 5, 10], "float": [3, 4, 5], "dropout": [3, 5], "rate": [3, 11], "regular": 3, "appli": [3, 5, 9, 11], "batch": [3, 4, 5, 9], "normal": 3, "gpu": 3, "acceler": [3, 7], "pytorch": [3, 4], "torch": [3, 4, 11], "nn": [3, 11], "input_channel": [3, 10], "output_channel": [3, 10], "kernel_s": [3, 10], "convolut": 3, "cnn": [3, 10], "channel": 3, "size": [3, 4, 5, 9, 10, 11], "kernel": 3, "linear": [3, 5, 10], "regressor": 3, "logist": [3, 10], "input_s": [3, 10], "hidden_s": [3, 10], "long": 3, "short": 3, "term": 3, "memori": 3, "lstm": [3, 10], "model_typ": [3, 11], "params_dict": [3, 4, 10, 11], "specif": [3, 5, 9, 11], "dynam": [3, 5, 10, 11], "given": [3, 4, 11], "multiclass": [3, 5, 10, 11], "svm": 3, "recurr": 3, "autoencod": [3, 10], "dict": [3, 4, 5], "dictionari": [3, 4, 5, 9], "contain": [3, 4, 9, 10, 11], "creation": [3, 4, 7, 10], "rnn": [3, 10], "train_nod": [3, 4], "test_nod": [3, 4], "testload": 3, "repres": [3, 4, 11], "loader": [3, 5, 10], "flsetupid": [3, 4], "databas": [3, 4, 6, 7], "associ": [3, 4, 11], "flpipeid": 3, "fedid": [3, 4], "flpipe": 3, "manag": [3, 5, 7, 11], "pipelin": [3, 4, 5, 7, 10], "self": [3, 4], "none": [3, 4, 5, 9], "specifi": [3, 4, 5, 6, 10, 11], "test_frac": [3, 4, 5], "1": [3, 4, 5, 6, 10], "all": [3, 4, 5, 9, 10, 11], "fraction": [3, 4, 5, 9], "classif": [3, 10, 11], "report": [3, 11], "result": [3, 5, 7], "entri": [3, 11], "string": [3, 4, 5], "store": [3, 5, 9, 10, 11], "note": [3, 4], "placehold": [3, 5], "method": [3, 4], "implement": [3, 4, 9], "node_nam": 3, "attribut": [3, 4, 5], "rais": [3, 4], "typeerror": [3, 4], "creation_d": 3, "callabl": 3, "val_load": 3, "devic": 3, "cpu": 3, "which": [3, 4, 5, 10, 11], "perform": [3, 5, 9, 10], "ndarrai": [3, 5], "get": [3, 4, 10], "np": 3, "model_path": 3, "load": [3, 5, 9], "path": [3, 4, 5, 6, 7, 9, 11], "model_nam": 3, "save": [3, 5, 9, 11], "except": [3, 5], "an": [3, 4, 7, 9, 10, 11], "issu": 3, "dure": [3, 9], "process": [3, 4, 10], "set": [3, 5, 9, 10, 11], "train_load": 3, "epoch": [3, 5], "privacy_engin": 3, "one": [3, 5, 10, 11], "enabl": [3, 5, 7, 10, 11], "valu": [3, 4, 5], "epsilon": [3, 6], "experi": [3, 7, 11], "organ": [3, 9, 10], "uniqu": [3, 4], "rang": [3, 9], "round": [3, 5, 9, 11], "differ": [3, 10, 11], "pipeline_nam": 3, "comparison": 3, "between": [3, 7, 10, 11], "confus": [3, 11], "matrix": [3, 11], "global": [3, 5, 11], "lr": [3, 6, 11], "001": [3, 6, 11], "adam": 3, "85": 3, "89": 3, "92": 3, "94": 3, "ellipsi": 3, "2": [3, 4, 5, 6, 10], "15": [3, 9], "08": 3, "01": [3, 5, 9], "sgd": [3, 5, 6, 9, 11], "88": [3, 9], "91": [3, 9], "93": 3, "95": 3, "18": 3, "13": 3, "09": 3, "07": 3, "82": 3, "87": 3, "25": 3, "12": [3, 9], "should": [3, 5, 9], "len": [3, 11], "num": 3, "delta": [3, 6], "common": 3, "thing": 3, "aggreg": [3, 5, 9, 10], "diff_privaci": [3, 6, 11], "client_resourc": [3, 11], "num_cpu": [3, 11], "num_gpu": [3, 11], "central": [3, 9], "flower": [3, 5, 7, 9, 10, 11], "among": 3, "commun": [3, 5], "particip": [3, 9], "each": [3, 5, 9, 10, 11], "individu": 3, "server_round": 3, "dtype": 3, "union": 3, "byte": [3, 5], "fl": [3, 4, 7, 10], "scalar": [3, 5], "simul": [3, 10], "histori": [3, 11], "fedavg": [3, 5, 9, 11], "evaluation_method": 3, "minimum": 3, "avail": 3, "requir": [3, 5, 11], "parametr": 3, "distribut": [3, 7], "direct": 3, "hpo_rat": 3, "params_config": 3, "y_true": 3, "y_pred_prob": 3, "comput": [3, 5, 7], "custom": [3, 5, 10], "includ": [3, 4, 11], "sensit": [3, 11], "precis": [3, 11], "npv": [3, 11], "f1": [3, 11], "score": [3, 11], "posit": [3, 11], "like": [3, 10], "label": [3, 4, 5, 9], "y_pred": 3, "empti": [3, 4], "record": [3, 10], "multipl": 3, "tabl": [3, 4, 11], "reset": 3, "auto": 3, "increment": 3, "counter": 3, "pipeline_id": 3, "datafram": [3, 4], "panda": [3, 4, 11], "read": [3, 4], "variabl": [3, 11], "config_path": 3, "test_load": 3, "csv": [4, 5, 6, 9, 10, 11], "assum": 4, "pd": [4, 11], "Not": 4, "yet": 4, "nodeid": 4, "upload": 4, "fill_strategi": 4, "mean": 4, "fit_encod": [4, 11], "to_drop": [4, 11], "train_batch_s": [4, 6], "32": [4, 5, 6, 9, 10, 11], "test_batch_s": [4, 6], "split_frac": 4, "val_frac": [4, 5], "master": [4, 6, 11], "column_nam": 4, "column": [4, 5, 9, 11], "masterdataset": [4, 6, 11], "retriev": 4, "": [4, 5, 7, 10, 11], "about": [4, 10], "classmethod": 4, "feddataset": 4, "found": 4, "flpipelineid": 4, "netnam": 4, "netid": 4, "nodenam": 4, "data_df": 4, "row": 4, "x": [4, 5], "check": 4, "convert": 4, "accordingli": 4, "seri": 4, "exist": 4, "otherwis": [4, 5], "after": [4, 5, 11], "encod": [4, 11], "drop": [4, 11], "tensordataset": 4, "imput": 4, "miss": 4, "eicu": 4, "fill": 4, "replac": 4, "nan": 4, "unknown": 4, "integ": 4, "add": [4, 11], "path_to_csv": [4, 11], "home": 4, "usherbrook": 4, "saho6810": 4, "notebook": [4, 10, 11], "minidiabet": 4, "insert": 4, "network_nam": 4, "els": [4, 5], "dataset_nam": 4, "assign": [4, 10], "param": [4, 6, 10], "compat": 4, "belong": [4, 5], "filter": 4, "rtype": 4, "unssign": 4, "mimic_train": 4, "nois": [5, 9], "multipli": 5, "dp": [5, 9, 11], "maximum": 5, "gradient": [5, 9], "norm": [5, 9], "clip": [5, 9], "secur": [5, 7, 9], "random": 5, "data_path": [5, 9], "dp_config": [5, 9], "id_col": [5, 9], "test_id": [5, 9], "seed": [5, 9], "42": [5, 9], "real": 5, "world": 5, "connect": [5, 6, 9, 10, 11], "provid": [5, 7, 10, 11], "schema": [5, 9], "target": [5, 9, 11], "handl": [5, 11], "val": [5, 9], "split": [5, 11], "opacu": [5, 10], "address": [5, 9], "g": [5, 9, 11], "127": 5, "8080": [5, 9], "disabl": 5, "side": [5, 9, 11], "overrid": [5, 9], "select": 5, "sampl": [5, 9], "via": [5, 7, 9], "comma": [5, 9], "separ": [5, 9], "line": 5, "build": [5, 7, 9, 11], "onc": [5, 9], "enforc": [5, 9], "win": 5, "val_fract": [5, 9], "per": 5, "held": 5, "influenc": 5, "It": [5, 7, 10, 11], "arbitrari": 5, "num_exampl": 5, "map": 5, "kei": [5, 10], "back": 5, "previou": 5, "format": 5, "extend": [5, 10], "been": [5, 11], "deprec": 5, "remov": 5, "sinc": 5, "19": 5, "request": 5, "tell": 5, "along": 5, "some": [5, 10], "properti": 5, "port": [5, 6, 9], "wrap": [5, 9, 11], "launch": 5, "serverconfig": 5, "wrapper": 5, "around": 5, "actual": 5, "flwr": [5, 11], "tl": 5, "log": [5, 9], "hostnam": [5, 9], "ip": [5, 9], "bind": 5, "listen": [5, 9], "execut": [5, 7], "track": [5, 11], "simpleclientmanag": 5, "refer": 5, "async": 5, "asynchron": 5, "fetch": 5, "clientproxi": 5, "proxi": 5, "being": 5, "wa": 5, "successfulli": 5, "64": [5, 10], "batchnorm": 5, "task": [5, 6, 10, 11], "num_class": 5, "output_bia": 5, "return_logit": 5, "weight_init": 5, "kaim": 5, "modul": [5, 7, 8, 9, 10, 11], "flexibl": 5, "mlp": 5, "awar": 5, "128": 5, "gelu": 5, "leaky_relu": 5, "batchnorm1d": 5, "multilabel": 5, "regress": [5, 10, 11], "ignor": 5, "count": 5, "alwai": 5, "recommend": 5, "post": 5, "defin": [5, 9, 11], "everi": [5, 9], "call": [5, 9, 10], "overridden": [5, 9], "subclass": 5, "although": 5, "recip": 5, "pass": [5, 9], "within": [5, 10], "afterward": 5, "instead": [5, 9], "former": 5, "take": [5, 10], "care": 5, "hook": 5, "latter": 5, "silent": 5, "them": [5, 9, 10], "evaluate_fn": 5, "fit_metrics_aggregation_fn": 5, "evaluate_metrics_aggregation_fn": 5, "local_epoch": [5, 9], "threshold": [5, 9], "5": [5, 6, 10], "learning_r": [5, 9], "optimizer_nam": [5, 9], "savingpath": [5, 9], "saveonround": [5, 9], "total_round": [5, 9], "split_mod": [5, 9], "client_fract": [5, 9], "hyperparamet": [5, 9, 11], "on_fit_config_fn": 5, "synchron": 5, "inspect": [5, 11], "configure_fit": 5, "per_client": [5, 9], "present": 5, "hostname_1": 5, "id1": 5, "id2": 5, "In": [5, 6, 9, 10, 11], "send": 5, "NOT": 5, "fall": 5, "match": [5, 9], "global_param": 6, "yaml": 6, "accord": 6, "base_url": 6, "path_to_project": 6, "db_config": 6, "ini": 6, "sql": [6, 10], "localhost": 6, "3306": 6, "user": [6, 7, 10], "your_usernam": 6, "password": 6, "your_password": 6, "also": [6, 10, 11], "create_db": 6, "py": [6, 9], "mydb": 6, "connector": 6, "binaryclassif": 6, "train_epoch": 6, "6": [6, 10], "20": 6, "1e": 6, "min_evalcli": 6, "path_to_master_csv": 6, "TO": 6, "path_to_test_csv": 6, "modular": 7, "extens": 7, "framework": [7, 10], "design": [7, 10, 11], "research": [7, 10, 11], "deploy": 7, "particularli": 7, "medic": [7, 10], "domain": [7, 10, 11], "support": [7, 10], "two": [7, 10, 11], "complementari": 7, "control": [7, 9], "virtual": 7, "rapidli": 7, "assumpt": 7, "hypothes": 7, "befor": [7, 10, 11], "move": 7, "product": [7, 11], "readi": 7, "where": [7, 9], "agent": 7, "seamless": 7, "across": [7, 10, 11], "hospit": [7, 9, 10, 11], "institut": [7, 9, 10, 11], "team": 7, "togeth": [7, 11], "complet": 7, "workflow": [7, 9, 10], "idea": 7, "For": 7, "seek": 7, "even": 7, "more": [7, 9], "access": [7, 10], "fulli": 7, "integr": [7, 10, 11], "applic": [7, 10], "friendli": 7, "desktop": 7, "simplifi": 7, "orchestr": [7, 9, 11], "medomicslab": 7, "bridg": 7, "gap": 7, "scientist": 7, "promot": 7, "through": [7, 9, 10], "intuit": 7, "tool": [7, 10], "autom": 7, "explor": [7, 10], "section": 7, "below": [7, 9], "begin": [7, 10], "understand": 7, "own": [7, 9, 11], "instal": [7, 10, 11], "analyz": [7, 10, 11], "ideal": [7, 10], "benchmark": 7, "transfer": [7, 11], "variat": 7, "safe": 7, "introduct": 7, "choic": 7, "deploi": 7, "workstat": 7, "protocol": 7, "peer": 7, "tailscal": 7, "robust": [7, 10, 11], "packag": [7, 8, 10, 11], "index": [7, 9], "search": 7, "page": 7, "subpackag": [8, 10], "content": 8, "show": [9, 11], "how": [9, 10, 11], "multi": 9, "One": 9, "sever": [9, 11], "remot": 9, "keep": [9, 11], "share": [9, 11], "same": 9, "site": 9, "done": 9, "follow": [9, 10, 11], "coordin": 9, "typic": 9, "reachabl": 9, "point": 9, "monitor": [9, 10], "collect": 9, "must": 9, "structur": [9, 10, 11], "majoraxislength": 9, "area": 9, "eccentr": 9, "convexarea": 9, "134": 9, "10023": 9, "10450": 9, "120": 9, "57": 9, "8900": 9, "76": 9, "9100": 9, "143": 9, "34": 9, "11010": 9, "11300": 9, "client1_with_id": 9, "identifi": [9, 11], "run_serv": 9, "import": 9, "here": [9, 11], "1499": 9, "1500": 9, "seen": 9, "dinf": 9, "medomi": 9, "05b": 9, "10": [9, 10], "custom_strategi": 9, "checkpoint": 9, "independ": [9, 10], "interfac": 9, "expos": 9, "__name__": 9, "__main__": 9, "expect": 9, "supervis": 9, "go": 9, "often": 9, "On": 9, "run_client": 9, "run_client_override_split": 9, "similar": 9, "100": 9, "65": 9, "215": 9, "27": 9, "see": [9, 11], "public": 9, "determinist": 9, "next": [9, 11], "subsect": 9, "To": [9, 10, 11], "dp_conf": 9, "magnitud": 9, "ad": 9, "higher": 9, "cryptograph": 9, "rng": 9, "both": [9, 10], "wait": 9, "written": 9, "etc": [9, 11], "logic": 9, "sometim": 9, "fine": 9, "grain": 9, "over": [9, 11], "effect": 9, "whose": [9, 11], "forc": 9, "sure": [9, 10, 11], "exactli": [9, 11], "correspond": [9, 11], "never": 9, "leav": 9, "onli": 9, "exchang": 9, "hybrid": 10, "inspir": 10, "pysyft": 10, "main": [10, 11], "strength": 10, "developp": 10, "benifit": 10, "three": 10, "martin": [10, 11], "ai": [10, 11], "hi": 10, "interest": [10, 11], "healthcar": [10, 11], "recent": 10, "he": [10, 11], "ha": [10, 11], "reciev": 10, "prestigi": [10, 11], "order": 10, "studi": [10, 11], "realis": 10, "goal": 10, "develop": [10, 11], "deep": [10, 11], "preserv": [10, 11], "patient": [10, 11], "finish": 10, "first": [10, 11], "analysi": 10, "statement": 10, "realiz": 10, "involv": 10, "good": 10, "fortun": 10, "know": [10, 11], "pretti": 10, "desir": 10, "sub": [10, 11], "let": 10, "u": 10, "expir": 10, "well": 10, "tutori": 10, "ll": 10, "demonstr": [10, 11], "establish": 10, "subsequ": 10, "step": [10, 11], "piec": 10, "our": [10, 11], "mysql": [10, 11], "due": 10, "widespread": 10, "adopt": 10, "industri": 10, "Its": 10, "strong": 10, "queri": 10, "languag": 10, "scalabl": 10, "divers": 10, "ensur": 10, "wamp": 10, "xampp": 10, "visual": [10, 11], "phpmyadmin": 10, "www": 10, "web": 10, "conveni": 10, "find": 10, "repositori": 10, "respons": 10, "reli": 10, "leverag": 10, "five": 10, "primari": 10, "incorpor": 10, "har": 10, "capabl": 10, "might": 10, "possess": 10, "pre": 10, "offer": 10, "advantag": 10, "enhanc": 10, "reduc": 10, "time": [10, 11], "mai": 10, "lack": 10, "suffici": 10, "entir": 10, "scratch": 10, "hinder": 10, "abil": 10, "achiev": 10, "becom": 10, "viabl": 10, "maxim": 10, "benefit": 10, "previous": 10, "knowledg": 10, "serv": 10, "second": [10, 11], "oper": 10, "addition": 10, "relev": 10, "mainli": 10, "paradigm": 10, "mani": 10, "deal": 10, "homogen": 10, "purpos": 10, "compar": [10, 11], "holdout": 10, "final": [10, 11], "By": 10, "adapt": [10, 11], "n": 10, "30": 10, "4": 10, "16": [10, 11], "7": 10, "8": 10, "encoder_hidden_s": 10, "As": 10, "part": 10, "align": 10, "deliv": 10, "effici": 10, "focus": 10, "seamlessli": 10, "up": 11, "realist": 11, "scenario": 11, "accompani": 11, "jupyt": 11, "guid": 11, "contact": 11, "feasibl": 11, "protect": 11, "kind": 11, "With": 11, "him": 11, "systemat": 11, "depend": 11, "env": 11, "sqlalchemi": 11, "diabet": 11, "locat": 11, "diabetes_dataset": 11, "database_manag": 11, "simplic": 11, "root": 11, "necessari": 11, "sy": 11, "append": 11, "o": 11, "pythonpath": 11, "database_connector": 11, "databasemanag": 11, "relat": 11, "medfl_databas": 11, "db_manag": 11, "get_connect": 11, "print": 11, "ok": 11, "describ": 11, "later": 11, "partit": 11, "infer": 11, "core": 11, "now": 11, "hold": 11, "net1": 11, "deriv": 11, "auto_fl": 11, "flsetup_2": 11, "just": 11, "hospital_1": 11, "client_1_dataset": 11, "hospital_2": 11, "client_2_dataset": 11, "hospital_3": 11, "client_3_dataset": 11, "ask": 11, "consid": 11, "fl_dataset": 11, "summari": 11, "helper": 11, "dynamic_model": 11, "specific_model": 11, "bceloss": 11, "everyth": 11, "init_param": 11, "combin": 11, "fedadam": 11, "aggreg_algo": 11, "reproduc": 11, "easi": 11, "link": 11, "ppl_1": 11, "fl_pipelin": 11, "evolut": 11, "global_accuraci": 11, "global_loss": 11, "plotter": 11, "produc": 11, "figur": 11, "curv": 11, "help": 11, "test_result": 11, "tp": 11, "fp": 11, "fn": 11, "tn": 11, "recal": 11, "ppv": 11, "auc": 11, "reus": 11, "futur": 11}, "objects": {"": [[2, 0, 0, "-", "MEDfl"]], "MEDfl": [[3, 0, 0, "-", "LearningManager"], [4, 0, 0, "-", "NetManager"], [5, 0, 0, "-", "rw"]], "MEDfl.LearningManager": [[3, 0, 0, "-", "client"], [3, 0, 0, "-", "dynamicModal"], [3, 0, 0, "-", "federated_dataset"], [3, 0, 0, "-", "flpipeline"], [3, 0, 0, "-", "model"], [3, 0, 0, "-", "plot"], [3, 0, 0, "-", "server"], [3, 0, 0, "-", "strategy"], [3, 0, 0, "-", "utils"]], "MEDfl.LearningManager.client": [[3, 1, 1, "", "FlowerClient"]], "MEDfl.LearningManager.client.FlowerClient": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "cid"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "get_parameters"], [3, 3, 1, "", "local_model"], [3, 3, 1, "", "trainloader"], [3, 2, 1, "", "validate"], [3, 3, 1, "", "valloader"]], "MEDfl.LearningManager.dynamicModal": [[3, 1, 1, "", "DynamicModel"]], "MEDfl.LearningManager.dynamicModal.DynamicModel": [[3, 2, 1, "", "create_binary_classifier"], [3, 2, 1, "", "create_convolutional_neural_network"], [3, 2, 1, "", "create_linear_regressor"], [3, 2, 1, "", "create_logistic_regressor"], [3, 2, 1, "", "create_lstm_network"], [3, 2, 1, "", "create_model"], [3, 2, 1, "", "create_multiclass_classifier"], [3, 2, 1, "", "create_recurrent_neural_network"]], "MEDfl.LearningManager.federated_dataset": [[3, 1, 1, "", "FederatedDataset"]], "MEDfl.LearningManager.federated_dataset.FederatedDataset": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create"], [3, 2, 1, "", "update"]], "MEDfl.LearningManager.flpipeline": [[3, 1, 1, "", "FLpipeline"], [3, 4, 1, "", "create_query"]], "MEDfl.LearningManager.flpipeline.FLpipeline": [[3, 2, 1, "", "auto_test"], [3, 2, 1, "", "create"], [3, 2, 1, "", "delete"], [3, 3, 1, "", "description"], [3, 3, 1, "", "name"], [3, 3, 1, "", "server"], [3, 2, 1, "", "test_by_node"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.model": [[3, 1, 1, "", "Model"]], "MEDfl.LearningManager.model.Model": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "criterion"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "get_parameters"], [3, 2, 1, "", "load_model"], [3, 3, 1, "", "model"], [3, 3, 1, "", "optimizer"], [3, 2, 1, "", "save_model"], [3, 2, 1, "", "set_parameters"], [3, 2, 1, "", "train"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.plot": [[3, 1, 1, "", "AccuracyLossPlotter"], [3, 5, 1, "", "results_dict"]], "MEDfl.LearningManager.plot.AccuracyLossPlotter": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "iterations"], [3, 3, 1, "", "metrics"], [3, 3, 1, "", "parameters"], [3, 2, 1, "", "plot_accuracy_loss"], [3, 2, 1, "", "plot_classification_report"], [3, 2, 1, "", "plot_confusion_Matrix_by_node"], [3, 2, 1, "", "plot_global_confusion_matrix"], [3, 3, 1, "", "results_dict"]], "MEDfl.LearningManager.server": [[3, 1, 1, "", "FlowerServer"]], "MEDfl.LearningManager.server.FlowerServer": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "accuracies"], [3, 2, 1, "", "client_fn"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 3, 1, "", "fed_dataset"], [3, 3, 1, "", "flower_clients"], [3, 3, 1, "", "global_model"], [3, 3, 1, "", "losses"], [3, 3, 1, "", "num_clients"], [3, 3, 1, "", "num_rounds"], [3, 2, 1, "", "run"], [3, 3, 1, "", "strategy"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.strategy": [[3, 1, 1, "", "Strategy"]], "MEDfl.LearningManager.strategy.Strategy": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create_strategy"], [3, 3, 1, "", "fraction_evaluate"], [3, 3, 1, "", "fraction_fit"], [3, 2, 1, "", "get_strategy_by_name"], [3, 3, 1, "", "initial_parameters"], [3, 3, 1, "", "min_available_clients"], [3, 3, 1, "", "min_evaluate_clients"], [3, 3, 1, "", "min_fit_clients"], [3, 3, 1, "", "name"], [3, 2, 1, "", "optuna_fed_optimization"]], "MEDfl.LearningManager.utils": [[3, 4, 1, "", "create_MEDfl_db"], [3, 4, 1, "", "custom_classification_report"], [3, 4, 1, "", "empty_db"], [3, 4, 1, "", "get_node_confusion_matrix"], [3, 4, 1, "", "get_pipeline_confusion_matrix"], [3, 4, 1, "", "get_pipeline_from_name"], [3, 4, 1, "", "get_pipeline_result"], [3, 4, 1, "", "load_db_config"], [3, 4, 1, "", "load_db_config_dep"], [3, 4, 1, "", "set_db_config"], [3, 4, 1, "", "set_db_config_dep"], [3, 4, 1, "", "test"]], "MEDfl.NetManager": [[4, 0, 0, "-", "dataset"], [4, 0, 0, "-", "flsetup"], [4, 0, 0, "-", "net_helper"], [4, 0, 0, "-", "net_manager_queries"], [4, 0, 0, "-", "network"], [4, 0, 0, "-", "node"]], "MEDfl.NetManager.dataset": [[4, 1, 1, "", "DataSet"]], "MEDfl.NetManager.dataset.DataSet": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "delete_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "update_data"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.flsetup": [[4, 1, 1, "", "FLsetup"]], "MEDfl.NetManager.flsetup.FLsetup": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create"], [4, 2, 1, "", "create_dataloader_from_node"], [4, 2, 1, "", "create_federated_dataset"], [4, 2, 1, "", "create_nodes_from_master_dataset"], [4, 2, 1, "", "delete"], [4, 2, 1, "", "get_flDataSet"], [4, 2, 1, "", "list_allsetups"], [4, 2, 1, "", "read_setup"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.net_helper": [[4, 4, 1, "", "get_feddataset_id_from_name"], [4, 4, 1, "", "get_flpipeline_from_name"], [4, 4, 1, "", "get_flsetupid_from_name"], [4, 4, 1, "", "get_netid_from_name"], [4, 4, 1, "", "get_nodeid_from_name"], [4, 4, 1, "", "is_str"], [4, 4, 1, "", "master_table_exists"], [4, 4, 1, "", "process_data_after_reading"], [4, 4, 1, "", "process_eicu"]], "MEDfl.NetManager.network": [[4, 1, 1, "", "Network"]], "MEDfl.NetManager.network.Network": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "add_node"], [4, 2, 1, "", "create_master_dataset"], [4, 2, 1, "", "create_network"], [4, 2, 1, "", "delete_network"], [4, 2, 1, "", "get_netid_from_name"], [4, 2, 1, "", "list_allnetworks"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "mtable_exists"], [4, 3, 1, "", "name"], [4, 2, 1, "", "update_network"], [4, 2, 1, "", "use_network"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.node": [[4, 1, 1, "", "Node"]], "MEDfl.NetManager.node.Node": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "assign_dataset"], [4, 2, 1, "", "check_dataset_compatibility"], [4, 2, 1, "", "create_node"], [4, 2, 1, "", "delete_node"], [4, 2, 1, "", "get_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "name"], [4, 3, 1, "", "test_fraction"], [4, 3, 1, "", "train"], [4, 2, 1, "", "unassign_dataset"], [4, 2, 1, "", "update_node"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.rw": [[5, 0, 0, "-", "client"], [5, 0, 0, "-", "model"], [5, 0, 0, "-", "server"], [5, 0, 0, "-", "strategy"]], "MEDfl.rw.client": [[5, 1, 1, "", "DPConfig"], [5, 1, 1, "", "FlowerClient"]], "MEDfl.rw.client.DPConfig": [[5, 3, 1, "", "batch_size"], [5, 3, 1, "", "max_grad_norm"], [5, 3, 1, "", "noise_multiplier"], [5, 3, 1, "", "secure_rng"]], "MEDfl.rw.client.FlowerClient": [[5, 2, 1, "", "_lazy_init_from_server_config"], [5, 2, 1, "", "evaluate"], [5, 2, 1, "", "fit"], [5, 2, 1, "", "get_parameters"], [5, 2, 1, "", "get_properties"], [5, 2, 1, "", "set_parameters"], [5, 2, 1, "", "start"]], "MEDfl.rw.model": [[5, 1, 1, "", "Net"]], "MEDfl.rw.model.Net": [[5, 2, 1, "", "forward"], [5, 2, 1, "", "predict"]], "MEDfl.rw.server": [[5, 1, 1, "", "FederatedServer"], [5, 1, 1, "", "TrackingClientManager"]], "MEDfl.rw.server.FederatedServer": [[5, 2, 1, "", "__init__"], [5, 3, 1, "", "certificates"], [5, 3, 1, "", "connected_clients"], [5, 3, 1, "", "server_address"], [5, 3, 1, "", "server_config"], [5, 2, 1, "id0", "start"], [5, 3, 1, "", "strategy"], [5, 3, 1, "", "strategy_wrapper"]], "MEDfl.rw.server.TrackingClientManager": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "_fetch_and_log_hostname"], [5, 3, 1, "", "client_properties"], [5, 2, 1, "", "register"], [5, 3, 1, "", "server"]], "MEDfl.rw.strategy": [[5, 1, 1, "", "Strategy"], [5, 4, 1, "", "aggregate_eval_metrics"], [5, 4, 1, "", "aggregate_fit_metrics"]], "MEDfl.rw.strategy.Strategy": [[5, 2, 1, "", "create_strategy"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "titleterms": {"document": [0, 7], "instal": 1, "python": 1, "requir": 1, "packag": [1, 2, 3, 4, 5], "For": 1, "user": 1, "contributor": 1, "databas": [1, 10, 11], "configur": [1, 6, 9, 11], "medfl": [2, 3, 4, 5, 7, 8, 11], "subpackag": 2, "modul": [2, 3, 4], "content": [2, 3, 4, 7], "learningmanag": 3, "submodul": [3, 4, 5], "client": [3, 9], "dynamicmod": 3, "federated_dataset": 3, "flpipelin": 3, "model": [3, 10, 11], "plot": [3, 11], "server": [3, 9, 11], "strategi": [3, 11], "util": 3, "netmanag": [4, 10, 11], "dataset": [4, 6, 11], "flsetup": [4, 11], "net_help": 4, "net_manager_queri": 4, "network": [4, 11], "node": [4, 11], "rw": 5, "file": 6, "project": 6, "base": 6, "url": 6, "mysql": 6, "learn": [6, 9, 10, 11], "paramet": [6, 9], "welcom": 7, "get": 7, "start": 7, "simul": [7, 11], "mode": 7, "tutori": [7, 9, 11], "real": [7, 9, 10, 11], "world": [7, 9, 10, 11], "api": 7, "refer": 7, "indic": 7, "tabl": 7, "feder": [9, 11], "high": 9, "level": 9, "architectur": 9, "1": [9, 11], "prepar": 9, "data": 9, "2": [9, 11], "kei": 9, "3": [9, 11], "4": [9, 11], "enabl": 9, "differenti": 9, "privaci": 9, "option": 9, "5": [9, 11], "run": 9, "experi": 9, "6": [9, 11], "custom": 9, "split": 9, "per": 9, "7": [9, 11], "summari": 9, "introduct": 10, "scenario": 10, "manag": 10, "transfer": 10, "result": [10, 11], "test": [10, 11], "phase": 10, "choic": 10, "titl": 10, "complet": 11, "motiv": 11, "0": 11, "prerequisit": 11, "environ": 11, "import": 11, "creation": 11, "setup": 11, "upload": 11, "definit": 11, "dynamicmodel": 11, "8": 11, "aggreg": 11, "9": 11, "10": 11, "fl": 11, "pipelin": 11, "train": 11, "11": 11, "accuraci": 11, "loss": 11, "12": 11, "automat": 11, "storag": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Documentation": [[0, "documentation"]], "Installation": [[1, "installation"]], "Python Requirements": [[1, "python-requirements"]], "Package Installation (For Users)": [[1, "package-installation-for-users"]], "Package Installation (For Contributors)": [[1, "package-installation-for-contributors"]], "Database Configuration": [[1, "database-configuration"]], "MEDfl package": [[2, "medfl-package"]], "Subpackages": [[2, "subpackages"]], "Module contents": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [4, "module-MEDfl.NetManager"]], "MEDfl.LearningManager package": [[3, "medfl-learningmanager-package"]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "module-MEDfl.rw.client"]], "MEDfl.LearningManager.client module": [[3, "module-MEDfl.LearningManager.client"]], "MEDfl.LearningManager.dynamicModal module": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "MEDfl.LearningManager.federated_dataset module": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "MEDfl.LearningManager.flpipeline module": [[3, "module-MEDfl.LearningManager.flpipeline"]], "MEDfl.LearningManager.model module": [[3, "module-MEDfl.LearningManager.model"]], "MEDfl.LearningManager.plot module": [[3, "module-MEDfl.LearningManager.plot"]], "MEDfl.LearningManager.server module": [[3, "module-MEDfl.LearningManager.server"]], "MEDfl.LearningManager.strategy module": [[3, "module-MEDfl.LearningManager.strategy"]], "MEDfl.LearningManager.utils module": [[3, "module-MEDfl.LearningManager.utils"]], "MEDfl.NetManager package": [[4, "medfl-netmanager-package"]], "MEDfl.NetManager.dataset module": [[4, "module-MEDfl.NetManager.dataset"]], "MEDfl.NetManager.flsetup module": [[4, "module-MEDfl.NetManager.flsetup"]], "MEDfl.NetManager.net_helper module": [[4, "module-MEDfl.NetManager.net_helper"]], "MEDfl.NetManager.net_manager_queries module": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "MEDfl.NetManager.network module": [[4, "module-MEDfl.NetManager.network"]], "MEDfl.NetManager.node module": [[4, "module-MEDfl.NetManager.node"]], "MEDfl.rw package": [[5, "module-MEDfl.rw"]], "Configuration File": [[6, "configuration-file"]], "Project base url": [[6, "project-base-url"]], "MySQL Configuration": [[6, "mysql-configuration"]], "Learning Parameters": [[6, "learning-parameters"]], "DataSets": [[6, "datasets"]], "Welcome to the MEDfl Documentation": [[7, "welcome-to-the-medfl-documentation"]], "Getting Started": [[7, null]], "Simulation Mode": [[7, "simulation-mode"]], "Simulation Tutorials": [[7, null]], "Real-World Mode": [[7, "real-world-mode"]], "\ud83c\udf0d Real-World Tutorials": [[7, null]], "API Reference": [[7, "api-reference"]], "Contents": [[7, null]], "Indices and Tables": [[7, "indices-and-tables"]], "MEDfl": [[8, "medfl"]], "Real-world Federated Learning Tutorial": [[9, "real-world-federated-learning-tutorial"]], "High-level architecture": [[9, "high-level-architecture"]], "1. Preparing client data": [[9, "preparing-client-data"]], "2. Server configuration": [[9, "server-configuration"]], "Key parameters": [[9, "key-parameters"]], "3. Client configuration": [[9, "client-configuration"]], "4. Enabling Differential Privacy (optional)": [[9, "enabling-differential-privacy-optional"]], "5. Running the experiment": [[9, "running-the-experiment"]], "6. Customizing splits per client": [[9, "customizing-splits-per-client"]], "7. Summary": [[9, "summary"]], "Introduction": [[10, "introduction"]], "Real world scenario": [[10, "real-world-scenario"]], "Database management": [[10, "database-management"]], "NetManager": [[10, "netmanager"]], "Transfer Learning": [[10, "transfer-learning"]], "Learning Manager": [[10, "learning-manager"]], "Learning Results": [[10, "learning-results"]], "Test Phases": [[10, "id2"]], "Model choice": [[10, "model-choice"]], "Title": [[10, "id3"]], "MEDfl Complete Tutorial (Simulation)": [[11, "medfl-complete-tutorial-simulation"]], "Real-world motivation": [[11, "real-world-motivation"]], "0. Prerequisites": [[11, "prerequisites"]], "1. Environment and imports": [[11, "environment-and-imports"]], "2. Database configuration": [[11, "database-configuration"]], "3. Network creation (NetManager)": [[11, "network-creation-netmanager"]], "4. Federated Learning setup (FLsetup)": [[11, "federated-learning-setup-flsetup"]], "5. Node creation and dataset upload": [[11, "node-creation-and-dataset-upload"]], "6. Federated dataset creation": [[11, "federated-dataset-creation"]], "7. Model definition (DynamicModel)": [[11, "model-definition-dynamicmodel"]], "8. Aggregation strategy": [[11, "aggregation-strategy"]], "9. Federated learning server": [[11, "federated-learning-server"]], "10. FL pipeline creation and training": [[11, "fl-pipeline-creation-and-training"]], "11. Plotting accuracy and loss": [[11, "plotting-accuracy-and-loss"]], "12. Automatic testing and result storage": [[11, "automatic-testing-and-result-storage"]]}, "indexentries": {"medfl": [[2, "module-MEDfl"]], "module": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [3, "module-MEDfl.LearningManager.client"], [3, "module-MEDfl.LearningManager.dynamicModal"], [3, "module-MEDfl.LearningManager.federated_dataset"], [3, "module-MEDfl.LearningManager.flpipeline"], [3, "module-MEDfl.LearningManager.model"], [3, "module-MEDfl.LearningManager.plot"], [3, "module-MEDfl.LearningManager.server"], [3, "module-MEDfl.LearningManager.strategy"], [3, "module-MEDfl.LearningManager.utils"], [4, "module-MEDfl.NetManager"], [4, "module-MEDfl.NetManager.dataset"], [4, "module-MEDfl.NetManager.flsetup"], [4, "module-MEDfl.NetManager.net_helper"], [4, "module-MEDfl.NetManager.net_manager_queries"], [4, "module-MEDfl.NetManager.network"], [4, "module-MEDfl.NetManager.node"], [5, "module-MEDfl.rw"], [5, "module-MEDfl.rw.client"], [5, "module-MEDfl.rw.model"], [5, "module-MEDfl.rw.server"], [5, "module-MEDfl.rw.strategy"]], "accuracylossplotter (class in medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter"]], "dynamicmodel (class in medfl.learningmanager.dynamicmodal)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel"]], "flpipeline (class in medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline"]], "federateddataset (class in medfl.learningmanager.federated_dataset)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset"]], "flowerclient (class in medfl.learningmanager.client)": [[3, "MEDfl.LearningManager.client.FlowerClient"]], "flowerserver (class in medfl.learningmanager.server)": [[3, "MEDfl.LearningManager.server.FlowerServer"]], "medfl.learningmanager": [[3, "module-MEDfl.LearningManager"]], "medfl.learningmanager.client": [[3, "module-MEDfl.LearningManager.client"]], "medfl.learningmanager.dynamicmodal": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "medfl.learningmanager.federated_dataset": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "medfl.learningmanager.flpipeline": [[3, "module-MEDfl.LearningManager.flpipeline"]], "medfl.learningmanager.model": [[3, "module-MEDfl.LearningManager.model"]], "medfl.learningmanager.plot": [[3, "module-MEDfl.LearningManager.plot"]], "medfl.learningmanager.server": [[3, "module-MEDfl.LearningManager.server"]], "medfl.learningmanager.strategy": [[3, "module-MEDfl.LearningManager.strategy"]], "medfl.learningmanager.utils": [[3, "module-MEDfl.LearningManager.utils"]], "model (class in medfl.learningmanager.model)": [[3, "MEDfl.LearningManager.model.Model"]], "strategy (class in medfl.learningmanager.strategy)": [[3, "MEDfl.LearningManager.strategy.Strategy"]], "__init__() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.__init__"]], "__init__() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.__init__"]], "__init__() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.__init__"]], "__init__() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.__init__"]], "__init__() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.__init__"]], "__init__() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.__init__"]], "accuracies (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.accuracies"]], "auto_test() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.auto_test"]], "cid (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.cid"]], "client_fn() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.client_fn"]], "create() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.create"]], "create() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.create"]], "create_medfl_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.create_MEDfl_db"]], "create_binary_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_binary_classifier"]], "create_convolutional_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_convolutional_neural_network"]], "create_linear_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_linear_regressor"]], "create_logistic_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_logistic_regressor"]], "create_lstm_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_lstm_network"]], "create_model() (medfl.learningmanager.dynamicmodal.dynamicmodel method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_model"]], "create_multiclass_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_multiclass_classifier"]], "create_query() (in module medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.create_query"]], "create_recurrent_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_recurrent_neural_network"]], "create_strategy() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.create_strategy"]], "criterion (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.criterion"]], "custom_classification_report() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.custom_classification_report"]], "delete() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.delete"]], "description (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.description"]], "diff_priv (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.diff_priv"]], "diff_priv (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.diff_priv"]], "empty_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.empty_db"]], "evaluate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.evaluate"]], "evaluate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.evaluate"]], "evaluate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.evaluate"]], "fed_dataset (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.fed_dataset"]], "fit() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.fit"]], "flower_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.flower_clients"]], "fraction_evaluate (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_evaluate"]], "fraction_fit (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_fit"]], "get_node_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_node_confusion_matrix"]], "get_parameters() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.get_parameters"]], "get_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.get_parameters"]], "get_pipeline_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_confusion_matrix"]], "get_pipeline_from_name() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_from_name"]], "get_pipeline_result() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_result"]], "get_strategy_by_name() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.get_strategy_by_name"]], "global_model (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.global_model"]], "initial_parameters (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.initial_parameters"]], "iterations (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.iterations"]], "load_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config"]], "load_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config_dep"]], "load_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.load_model"]], "local_model (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.local_model"]], "losses (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.losses"]], "metrics (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.metrics"]], "min_available_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_available_clients"]], "min_evaluate_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_evaluate_clients"]], "min_fit_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_fit_clients"]], "model (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.model"]], "name (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.name"]], "name (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.name"]], "num_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_clients"]], "num_rounds (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_rounds"]], "optimizer (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.optimizer"]], "optuna_fed_optimization() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.optuna_fed_optimization"]], "parameters (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.parameters"]], "plot_accuracy_loss() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_accuracy_loss"]], "plot_classification_report() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_classification_report"]], "plot_confusion_matrix_by_node() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_confusion_Matrix_by_node"]], "plot_global_confusion_matrix() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_global_confusion_matrix"]], "results_dict (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.results_dict"]], "results_dict (in module medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.results_dict"]], "run() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.run"]], "save_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.save_model"]], "server (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.server"]], "set_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config"]], "set_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config_dep"]], "set_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.set_parameters"]], "strategy (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.strategy"]], "test() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.test"]], "test_by_node() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.test_by_node"]], "train() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.train"]], "trainloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.trainloader"]], "update() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.update"]], "validate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.validate"]], "validate() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.validate"]], "validate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.validate"]], "validate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.validate"]], "valloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.valloader"]], "dataset (class in medfl.netmanager.dataset)": [[4, "MEDfl.NetManager.dataset.DataSet"]], "flsetup (class in medfl.netmanager.flsetup)": [[4, "MEDfl.NetManager.flsetup.FLsetup"]], "medfl.netmanager": [[4, "module-MEDfl.NetManager"]], "medfl.netmanager.dataset": [[4, "module-MEDfl.NetManager.dataset"]], "medfl.netmanager.flsetup": [[4, "module-MEDfl.NetManager.flsetup"]], "medfl.netmanager.net_helper": [[4, "module-MEDfl.NetManager.net_helper"]], "medfl.netmanager.net_manager_queries": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "medfl.netmanager.network": [[4, "module-MEDfl.NetManager.network"]], "medfl.netmanager.node": [[4, "module-MEDfl.NetManager.node"]], "network (class in medfl.netmanager.network)": [[4, "MEDfl.NetManager.network.Network"]], "node (class in medfl.netmanager.node)": [[4, "MEDfl.NetManager.node.Node"]], "__init__() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.__init__"]], "__init__() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.__init__"]], "__init__() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.__init__"]], "__init__() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.__init__"]], "add_node() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.add_node"]], "assign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.assign_dataset"]], "check_dataset_compatibility() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.check_dataset_compatibility"]], "create() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create"]], "create_dataloader_from_node() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_dataloader_from_node"]], "create_federated_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_federated_dataset"]], "create_master_dataset() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_master_dataset"]], "create_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_network"]], "create_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.create_node"]], "create_nodes_from_master_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_nodes_from_master_dataset"]], "delete() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.delete"]], "delete_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.delete_dataset"]], "delete_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.delete_network"]], "delete_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.delete_node"]], "get_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.get_dataset"]], "get_feddataset_id_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_feddataset_id_from_name"]], "get_fldataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.get_flDataSet"]], "get_flpipeline_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flpipeline_from_name"]], "get_flsetupid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flsetupid_from_name"]], "get_netid_from_name() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.get_netid_from_name"]], "get_netid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_netid_from_name"]], "get_nodeid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_nodeid_from_name"]], "is_str() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.is_str"]], "list_alldatasets() (medfl.netmanager.dataset.dataset static method)": [[4, "MEDfl.NetManager.dataset.DataSet.list_alldatasets"]], "list_alldatasets() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.list_alldatasets"]], "list_allnetworks() (medfl.netmanager.network.network static method)": [[4, "MEDfl.NetManager.network.Network.list_allnetworks"]], "list_allnodes() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.list_allnodes"]], "list_allnodes() (medfl.netmanager.node.node static method)": [[4, "MEDfl.NetManager.node.Node.list_allnodes"]], "list_allsetups() (medfl.netmanager.flsetup.flsetup static method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.list_allsetups"]], "master_table_exists() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.master_table_exists"]], "mtable_exists (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.mtable_exists"]], "name (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.name"]], "name (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.name"]], "process_data_after_reading() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_data_after_reading"]], "process_eicu() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_eicu"]], "read_setup() (medfl.netmanager.flsetup.flsetup class method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.read_setup"]], "test_fraction (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.test_fraction"]], "train (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.train"]], "unassign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.unassign_dataset"]], "update_data() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.update_data"]], "update_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.update_network"]], "update_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.update_node"]], "upload_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.upload_dataset"]], "upload_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.upload_dataset"]], "use_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.use_network"]], "validate() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.validate"]], "validate() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.validate"]], "validate() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.validate"]], "validate() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.validate"]], "dpconfig (class in medfl.rw.client)": [[5, "MEDfl.rw.client.DPConfig"]], "federatedserver (class in medfl.rw.server)": [[5, "MEDfl.rw.server.FederatedServer"]], "flowerclient (class in medfl.rw.client)": [[5, "MEDfl.rw.client.FlowerClient"]], "medfl.rw": [[5, "module-MEDfl.rw"]], "medfl.rw.client": [[5, "module-MEDfl.rw.client"]], "medfl.rw.model": [[5, "module-MEDfl.rw.model"]], "medfl.rw.server": [[5, "module-MEDfl.rw.server"]], "medfl.rw.strategy": [[5, "module-MEDfl.rw.strategy"]], "net (class in medfl.rw.model)": [[5, "MEDfl.rw.model.Net"]], "strategy (class in medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.Strategy"]], "trackingclientmanager (class in medfl.rw.server)": [[5, "MEDfl.rw.server.TrackingClientManager"]], "__init__() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.__init__"]], "__init__() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.__init__"]], "_fetch_and_log_hostname() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager._fetch_and_log_hostname"]], "_lazy_init_from_server_config() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient._lazy_init_from_server_config"]], "aggregate_eval_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_eval_metrics"]], "aggregate_fit_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_fit_metrics"]], "batch_size (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.batch_size"]], "certificates (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.certificates"]], "client_properties (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.client_properties"]], "connected_clients (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.connected_clients"]], "create_strategy() (medfl.rw.strategy.strategy method)": [[5, "MEDfl.rw.strategy.Strategy.create_strategy"]], "evaluate() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.evaluate"]], "fit() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.fit"]], "forward() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.forward"]], "get_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_parameters"]], "get_properties() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_properties"]], "max_grad_norm (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.max_grad_norm"]], "noise_multiplier (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.noise_multiplier"]], "predict() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.predict"]], "register() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.register"]], "secure_rng (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.secure_rng"]], "server (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.server"]], "server_address (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_address"]], "server_config (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_config"]], "set_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.set_parameters"]], "start() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.start"]], "start() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.start"], [5, "id0"]], "strategy (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy"]], "strategy_wrapper (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy_wrapper"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["Documentation", "Installation", "MEDfl", "MEDfl.LearningManager", "MEDfl.NetManager", "MEDfl.rw", "configuration_file", "index", "modules", "rw_tutorial_complete", "simulation_tutorials", "simulation_tutorials_complete"], "filenames": ["Documentation.rst", "Installation.rst", "MEDfl.rst", "MEDfl.LearningManager.rst", "MEDfl.NetManager.rst", "MEDfl.rw.rst", "configuration_file.rst", "index.rst", "modules.rst", "rw_tutorial_complete.rst", "simulation_tutorials.rst", "simulation_tutorials_complete.rst"], "titles": ["Documentation", "Installation", "MEDfl package", "MEDfl.LearningManager package", "MEDfl.NetManager package", "MEDfl.rw package", "Configuration File", "Welcome to the MEDfl Documentation", "MEDfl", "Connecting Clients Behind Private Networks Using Tailscale", "Introduction", "MEDfl Complete Tutorial (Simulation)"], "terms": {"we": [0, 9, 11], "us": [0, 1, 3, 4, 5, 6, 7, 10, 11], "sphinx": 0, "creat": [0, 1, 2, 3, 4, 6, 8, 10, 11], "thi": [0, 1, 3, 5, 7, 9, 10, 11], "project": [0, 10, 11], "you": [0, 1, 6, 7, 9, 11], "can": [0, 1, 5, 6, 9, 11], "gener": [0, 1, 5, 10, 11], "host": [0, 5, 6, 9], "local": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11], "compil": 0, "sourc": [0, 1, 3, 4, 5], "code": [0, 1, 4], "cd": [0, 1], "doc": 0, "make": [0, 9, 10, 11], "clean": 0, "html": 0, "Then": 0, "open": 0, "_build": 0, "python": [0, 7, 9, 10, 11], "m": 0, "http": [0, 1, 9], "server": [0, 1, 2, 5, 7, 8, 10], "The": [1, 3, 4, 5, 6, 9, 10, 11], "medfl": [1, 6, 10], "3": [1, 5, 6, 10], "9": 1, "If": [1, 3, 4, 5], "do": [1, 5, 10], "have": [1, 3, 5, 9, 11], "your": [1, 3, 6, 7, 9, 11], "machin": [1, 7, 10], "download": [1, 9], "from": [1, 3, 4, 5, 7, 9, 10, 11], "sqlite": [1, 10, 11], "its": [1, 3, 5, 7, 9, 10, 11], "default": [1, 3, 4, 5, 9, 10], "engin": [1, 3, 4, 10], "setup": [1, 3, 4, 9, 10], "work": [1, 7, 10], "automat": [1, 3, 9, 10], "db": [1, 10, 11], "file": [1, 3, 4, 5, 9, 10, 11], "simpli": 1, "want": [1, 6, 9], "directli": [1, 9], "pypi": 1, "pip": 1, "latest": 1, "stabl": [1, 9], "releas": 1, "allow": [1, 5, 7, 9, 10, 11], "start": [1, 2, 3, 5, 8, 9, 11], "immedi": 1, "collabor": [1, 7, 11], "contribut": 1, "modifi": [1, 6, 9], "github": [1, 9], "edit": 1, "mode": [1, 5, 9, 11], "git": 1, "clone": 1, "com": [1, 9], "medom": 1, "ud": 1, "e": [1, 5, 9, 11], "while": [1, 5, 10, 11], "test": [1, 2, 3, 4, 5, 6, 7, 8, 9], "new": [1, 3, 4, 5, 10, 11], "featur": [1, 4, 5, 9, 10, 11], "No": [1, 9], "i": [1, 3, 4, 5, 6, 7, 9, 10, 11], "lightweight": 1, "reliabl": 1, "base": [1, 3, 4, 5, 9, 10, 11], "system": [1, 10, 11], "A": [1, 3, 4, 5, 9, 11], "when": [1, 4, 5, 9, 10], "initi": [1, 3, 4, 5, 10, 11], "environ": [1, 3, 7, 9], "ani": [1, 3, 5, 11], "function": [1, 3, 5], "storag": [1, 10], "extern": [1, 10], "script": [1, 6], "credenti": 1, "ar": [1, 5, 9, 10, 11], "need": [1, 3, 5, 6, 9, 11], "learningmanag": [2, 6, 7, 8, 10, 11], "submodul": [2, 8], "client": [2, 5, 7, 8, 10, 11], "flowercli": [2, 3, 5, 8, 9], "cid": [2, 3, 5, 8], "local_model": [2, 3, 8], "trainload": [2, 3, 8, 11], "valload": [2, 3, 8], "diff_priv": [2, 3, 8], "__init__": [2, 3, 4, 5, 8], "evalu": [2, 3, 5, 7, 8], "fit": [2, 3, 5, 8], "get_paramet": [2, 3, 5, 8, 11], "valid": [2, 3, 4, 5, 7, 8, 9, 10], "dynamicmod": [2, 8, 11], "dynamicmodel": [2, 3, 8, 10], "create_binary_classifi": [2, 3, 8], "create_convolutional_neural_network": [2, 3, 8], "create_linear_regressor": [2, 3, 8], "create_logistic_regressor": [2, 3, 8], "create_lstm_network": [2, 3, 8], "create_model": [2, 3, 8, 11], "create_multiclass_classifi": [2, 3, 8], "create_recurrent_neural_network": [2, 3, 8], "federated_dataset": [2, 8], "federateddataset": [2, 3, 4, 8], "updat": [2, 3, 4, 5, 6, 8, 9, 11], "flpipelin": [2, 4, 8, 11], "name": [2, 3, 4, 5, 8, 9, 11], "descript": [2, 3, 4, 8, 11], "auto_test": [2, 3, 8, 11], "delet": [2, 3, 4, 8], "test_by_nod": [2, 3, 8], "create_queri": [2, 3, 8], "model": [2, 5, 6, 7, 8, 9], "optim": [2, 3, 6, 8, 10, 11], "criterion": [2, 3, 8, 11], "load_model": [2, 3, 8], "save_model": [2, 3, 8], "set_paramet": [2, 3, 5, 8], "train": [2, 3, 4, 5, 8, 9, 10], "plot": [2, 8], "accuracylossplott": [2, 3, 8, 11], "results_dict": [2, 3, 8, 11], "paramet": [2, 3, 4, 5, 8, 10, 11], "metric": [2, 3, 5, 8, 9, 11], "iter": [2, 3, 7, 8], "plot_accuracy_loss": [2, 3, 8, 11], "plot_classification_report": [2, 3, 8], "plot_confusion_matrix_by_nod": [2, 3, 8], "plot_global_confusion_matrix": [2, 3, 8], "flowerserv": [2, 3, 8, 11], "global_model": [2, 3, 8, 11], "strategi": [2, 4, 5, 8, 9, 10], "num_round": [2, 3, 5, 6, 8, 9, 11], "num_client": [2, 3, 8, 11], "fed_dataset": [2, 3, 8, 11], "accuraci": [2, 3, 8, 9], "loss": [2, 3, 5, 8, 9], "flower_cli": [2, 3, 8], "client_fn": [2, 3, 8], "run": [2, 3, 5, 7, 8, 11], "fraction_fit": [2, 3, 5, 8, 9, 11], "fraction_evalu": [2, 3, 5, 8, 11], "min_fit_cli": [2, 3, 5, 8, 9, 11], "min_evaluate_cli": [2, 3, 5, 8, 9, 11], "min_available_cli": [2, 3, 5, 8, 9, 11], "initial_paramet": [2, 3, 5, 8, 11], "create_strategi": [2, 3, 5, 8, 11], "get_strategy_by_nam": [2, 3, 8], "optuna_fed_optim": [2, 3, 8], "util": [2, 4, 8, 9, 10, 11], "create_medfl_db": [2, 3, 8, 11], "custom_classification_report": [2, 3, 8], "empty_db": [2, 3, 8], "get_node_confusion_matrix": [2, 3, 8], "get_pipeline_confusion_matrix": [2, 3, 8], "get_pipeline_from_nam": [2, 3, 8], "get_pipeline_result": [2, 3, 8], "load_db_config": [2, 3, 8], "load_db_config_dep": [2, 3, 8], "set_db_config": [2, 3, 8, 11], "set_db_config_dep": [2, 3, 8], "netmanag": [2, 7, 8], "dataset": [2, 3, 5, 8, 9, 10], "delete_dataset": [2, 4, 8], "list_alldataset": [2, 4, 8], "update_data": [2, 4, 8], "upload_dataset": [2, 4, 8, 11], "flsetup": [2, 3, 8, 10], "create_dataloader_from_nod": [2, 4, 8], "create_federated_dataset": [2, 4, 8, 11], "create_nodes_from_master_dataset": [2, 4, 8], "get_fldataset": [2, 4, 8, 11], "list_allsetup": [2, 4, 8, 11], "read_setup": [2, 4, 8], "net_help": [2, 8], "get_feddataset_id_from_nam": [2, 4, 8], "get_flpipeline_from_nam": [2, 4, 8], "get_flsetupid_from_nam": [2, 4, 8], "get_netid_from_nam": [2, 4, 8], "get_nodeid_from_nam": [2, 4, 8], "is_str": [2, 4, 8], "master_table_exist": [2, 4, 8], "process_data_after_read": [2, 4, 8], "process_eicu": [2, 4, 8], "net_manager_queri": [2, 8], "network": [2, 3, 7, 8, 10], "mtable_exist": [2, 4, 8], "add_nod": [2, 4, 8, 11], "create_master_dataset": [2, 4, 8, 11], "create_network": [2, 4, 8, 11], "delete_network": [2, 4, 8], "list_allnetwork": [2, 4, 8], "list_allnod": [2, 4, 8, 11], "update_network": [2, 4, 8], "use_network": [2, 4, 8], "node": [2, 3, 7, 8, 9, 10], "test_fract": [2, 4, 5, 8, 9], "assign_dataset": [2, 4, 8], "check_dataset_compat": [2, 4, 8], "create_nod": [2, 4, 8], "delete_nod": [2, 4, 8], "get_dataset": [2, 4, 8], "unassign_dataset": [2, 4, 8], "update_nod": [2, 4, 8], "rw": [2, 7, 8, 9], "dpconfig": [2, 5, 8, 9], "noise_multipli": [2, 5, 8, 9], "max_grad_norm": [2, 5, 6, 8, 9], "batch_siz": [2, 5, 8, 9], "secure_rng": [2, 5, 8, 9], "_lazy_init_from_server_config": [2, 5, 8], "get_properti": [2, 5, 8], "federatedserv": [2, 5, 8, 9], "server_address": [2, 5, 8, 9], "server_config": [2, 5, 8], "strategy_wrapp": [2, 5, 8], "certif": [2, 5, 8], "connected_cli": [2, 5, 8], "trackingclientmanag": [2, 5, 8], "client_properti": [2, 5, 8], "_fetch_and_log_hostnam": [2, 5, 8], "regist": [2, 5, 8, 11], "net": [2, 5, 8, 11], "forward": [2, 5, 8, 9], "predict": [2, 3, 5, 8], "aggregate_eval_metr": [2, 5, 8], "aggregate_fit_metr": [2, 5, 8], "class": [3, 4, 5, 10, 11], "str": [3, 4, 5], "dataload": [3, 4], "bool": [3, 4, 5], "true": [3, 4, 5, 6, 9, 10, 11], "numpycli": [3, 5], "id": [3, 4, 5, 9], "type": [3, 4, 5], "feder": [3, 4, 5, 7, 10], "learn": [3, 4, 5, 7], "data": [3, 4, 5, 10, 11], "flag": [3, 4], "indic": [3, 4], "whether": [3, 4, 9], "differenti": [3, 5, 7, 10, 11], "privaci": [3, 5, 7, 10, 11], "instanc": [3, 4, 5, 9, 10], "config": [3, 5], "return": [3, 4, 5], "receiv": [3, 9, 11], "configur": [3, 5, 7, 10], "inform": [3, 4], "number": [3, 5, 11], "exampl": [3, 5, 9, 11], "tupl": 3, "current": [3, 5], "numpi": [3, 5], "arrai": 3, "object": [3, 4, 5, 10, 11], "variou": [3, 10], "neural": [3, 10], "static": [3, 4], "input_dim": [3, 5, 10, 11], "hidden_dim": [3, 5, 10, 11], "output_dim": [3, 10, 11], "activ": [3, 5, 9, 10], "relu": [3, 5, 10], "dropout_r": [3, 10], "0": [3, 4, 5, 6, 9, 10], "batch_norm": [3, 10], "fals": [3, 4, 5, 9, 10, 11], "use_gpu": [3, 10], "binari": [3, 5, 10, 11], "classifi": [3, 11], "customiz": 3, "architectur": [3, 4, 7, 10, 11], "int": [3, 4, 5], "dimens": [3, 10], "input": [3, 4, 10, 11], "list": [3, 4, 5, 9, 10, 11], "hidden": [3, 5, 10], "layer": [3, 5, 7, 10, 11], "output": [3, 4, 5, 9, 10, 11], "option": [3, 4, 5, 10], "float": [3, 4, 5], "dropout": [3, 5], "rate": [3, 11], "regular": 3, "appli": [3, 5, 9, 11], "batch": [3, 4, 5, 9], "normal": 3, "gpu": 3, "acceler": [3, 7], "pytorch": [3, 4], "torch": [3, 4, 11], "nn": [3, 11], "input_channel": [3, 10], "output_channel": [3, 10], "kernel_s": [3, 10], "convolut": 3, "cnn": [3, 10], "channel": 3, "size": [3, 4, 5, 9, 10, 11], "kernel": 3, "linear": [3, 5, 10], "regressor": 3, "logist": [3, 10], "input_s": [3, 10], "hidden_s": [3, 10], "long": 3, "short": 3, "term": 3, "memori": 3, "lstm": [3, 10], "model_typ": [3, 11], "params_dict": [3, 4, 10, 11], "specif": [3, 5, 9, 11], "dynam": [3, 5, 10, 11], "given": [3, 4, 11], "multiclass": [3, 5, 10, 11], "svm": 3, "recurr": 3, "autoencod": [3, 10], "dict": [3, 4, 5], "dictionari": [3, 4, 5, 9], "contain": [3, 4, 9, 10, 11], "creation": [3, 4, 7, 10], "rnn": [3, 10], "train_nod": [3, 4], "test_nod": [3, 4], "testload": 3, "repres": [3, 4, 11], "loader": [3, 5, 10], "flsetupid": [3, 4], "databas": [3, 4, 6, 7], "associ": [3, 4, 9, 11], "flpipeid": 3, "fedid": [3, 4], "flpipe": 3, "manag": [3, 5, 7, 11], "pipelin": [3, 4, 5, 7, 10], "self": [3, 4], "none": [3, 4, 5, 9], "specifi": [3, 4, 5, 6, 10, 11], "test_frac": [3, 4, 5], "1": [3, 4, 5, 6, 10], "all": [3, 4, 5, 9, 10, 11], "fraction": [3, 4, 5, 9], "classif": [3, 10, 11], "report": [3, 11], "result": [3, 5, 7], "entri": [3, 11], "string": [3, 4, 5], "store": [3, 5, 9, 10, 11], "note": [3, 4], "placehold": [3, 5], "method": [3, 4], "implement": [3, 4, 9], "node_nam": 3, "attribut": [3, 4, 5], "rais": [3, 4], "typeerror": [3, 4], "creation_d": 3, "callabl": 3, "val_load": 3, "devic": [3, 9], "cpu": 3, "which": [3, 4, 5, 10, 11], "perform": [3, 5, 9, 10], "ndarrai": [3, 5], "get": [3, 4, 10], "np": 3, "model_path": 3, "load": [3, 5, 9], "path": [3, 4, 5, 6, 7, 9, 11], "model_nam": 3, "save": [3, 5, 9, 11], "except": [3, 5], "an": [3, 4, 7, 9, 10, 11], "issu": [3, 9], "dure": [3, 9], "process": [3, 4, 10], "set": [3, 5, 9, 10, 11], "train_load": 3, "epoch": [3, 5], "privacy_engin": 3, "one": [3, 5, 9, 10, 11], "enabl": [3, 5, 7, 10, 11], "valu": [3, 4, 5], "epsilon": [3, 6], "experi": [3, 7, 11], "organ": [3, 9, 10], "uniqu": [3, 4, 9], "rang": [3, 9], "round": [3, 5, 9, 11], "differ": [3, 9, 10, 11], "pipeline_nam": 3, "comparison": 3, "between": [3, 7, 9, 10, 11], "confus": [3, 11], "matrix": [3, 11], "global": [3, 5, 11], "lr": [3, 6, 11], "001": [3, 6, 11], "adam": 3, "85": 3, "89": 3, "92": 3, "94": 3, "ellipsi": 3, "2": [3, 4, 5, 6, 10], "15": [3, 9], "08": 3, "01": [3, 5, 9], "sgd": [3, 5, 6, 9, 11], "88": [3, 9], "91": [3, 9], "93": 3, "95": 3, "18": 3, "13": 3, "09": 3, "07": 3, "82": 3, "87": 3, "25": 3, "12": [3, 9], "should": [3, 5, 9], "len": [3, 11], "num": 3, "delta": [3, 6], "common": 3, "thing": 3, "aggreg": [3, 5, 9, 10], "diff_privaci": [3, 6, 11], "client_resourc": [3, 11], "num_cpu": [3, 11], "num_gpu": [3, 11], "central": [3, 9], "flower": [3, 5, 7, 9, 10, 11], "among": 3, "commun": [3, 5, 9], "particip": [3, 9], "each": [3, 5, 10, 11], "individu": 3, "server_round": 3, "dtype": 3, "union": 3, "byte": [3, 5], "fl": [3, 4, 7, 10], "scalar": [3, 5], "simul": [3, 10], "histori": [3, 11], "fedavg": [3, 5, 9, 11], "evaluation_method": 3, "minimum": 3, "avail": 3, "requir": [3, 5, 9, 10, 11], "parametr": 3, "distribut": [3, 7, 9], "direct": [3, 9], "hpo_rat": 3, "params_config": 3, "y_true": 3, "y_pred_prob": 3, "comput": [3, 5, 7], "custom": [3, 5, 10], "includ": [3, 4, 11], "sensit": [3, 9, 11], "precis": [3, 11], "npv": [3, 11], "f1": [3, 11], "score": [3, 11], "posit": [3, 11], "like": [3, 10], "label": [3, 4, 5, 9], "y_pred": 3, "empti": [3, 4], "record": [3, 10], "multipl": 3, "tabl": [3, 4, 11], "reset": 3, "auto": 3, "increment": 3, "counter": 3, "pipeline_id": 3, "datafram": [3, 4], "panda": [3, 4, 11], "read": [3, 4], "variabl": [3, 11], "config_path": 3, "test_load": 3, "csv": [4, 5, 6, 9, 10, 11], "assum": 4, "pd": [4, 11], "Not": 4, "yet": 4, "nodeid": 4, "upload": 4, "fill_strategi": 4, "mean": 4, "fit_encod": [4, 11], "to_drop": [4, 11], "train_batch_s": [4, 6], "32": [4, 5, 6, 9, 10, 11], "test_batch_s": [4, 6], "split_frac": 4, "val_frac": [4, 5], "master": [4, 6, 11], "column_nam": 4, "column": [4, 5, 9, 11], "masterdataset": [4, 6, 11], "retriev": 4, "": [4, 5, 7, 10, 11], "about": [4, 10], "classmethod": 4, "feddataset": 4, "found": 4, "flpipelineid": 4, "netnam": 4, "netid": 4, "nodenam": 4, "data_df": 4, "row": 4, "x": [4, 5, 9], "check": 4, "convert": 4, "accordingli": 4, "seri": 4, "exist": [4, 9], "otherwis": [4, 5], "after": [4, 5, 9, 11], "encod": [4, 11], "drop": [4, 11], "tensordataset": 4, "imput": 4, "miss": 4, "eicu": 4, "fill": 4, "replac": 4, "nan": 4, "unknown": 4, "integ": 4, "add": [4, 9, 11], "path_to_csv": [4, 11], "home": [4, 9], "usherbrook": 4, "saho6810": 4, "notebook": [4, 10, 11], "minidiabet": 4, "insert": 4, "network_nam": 4, "els": [4, 5], "dataset_nam": 4, "assign": [4, 9, 10], "param": [4, 6, 10], "compat": 4, "belong": [4, 5], "filter": 4, "rtype": 4, "unssign": 4, "mimic_train": 4, "nois": [5, 9], "multipli": 5, "dp": [5, 9, 11], "maximum": 5, "gradient": [5, 9], "norm": [5, 9], "clip": [5, 9], "secur": [5, 7], "random": 5, "data_path": [5, 9], "dp_config": [5, 9], "id_col": [5, 9], "test_id": [5, 9], "seed": [5, 9], "42": [5, 9], "real": 5, "world": 5, "connect": [5, 6, 7, 11], "provid": [5, 7, 9, 10, 11], "schema": [5, 9], "target": [5, 9, 11], "handl": [5, 11], "val": [5, 9], "split": [5, 11], "opacu": [5, 10], "address": 5, "g": [5, 9, 11], "127": 5, "8080": [5, 9], "disabl": 5, "side": [5, 9, 11], "overrid": [5, 9], "select": 5, "sampl": [5, 9], "via": [5, 7, 9], "comma": [5, 9], "separ": [5, 9], "line": 5, "build": [5, 7, 9, 11], "onc": [5, 9], "enforc": [5, 9], "win": 5, "val_fract": [5, 9], "per": 5, "held": 5, "influenc": 5, "It": [5, 7, 9, 10, 11], "arbitrari": 5, "num_exampl": 5, "map": 5, "kei": [5, 10], "back": 5, "previou": 5, "format": 5, "extend": [5, 10], "been": [5, 11], "deprec": 5, "remov": 5, "sinc": 5, "19": 5, "request": 5, "tell": 5, "along": 5, "some": [5, 10], "properti": 5, "port": [5, 6, 9], "wrap": [5, 9, 11], "launch": [5, 9], "serverconfig": 5, "wrapper": 5, "around": 5, "actual": 5, "flwr": [5, 11], "tl": 5, "log": [5, 9], "hostnam": [5, 9], "ip": 5, "bind": 5, "listen": [5, 9], "execut": [5, 7], "track": [5, 11], "simpleclientmanag": 5, "refer": 5, "async": 5, "asynchron": 5, "fetch": 5, "clientproxi": 5, "proxi": 5, "being": 5, "wa": 5, "successfulli": 5, "64": [5, 10], "batchnorm": 5, "task": [5, 6, 10, 11], "num_class": 5, "output_bia": 5, "return_logit": 5, "weight_init": 5, "kaim": 5, "modul": [5, 7, 8, 9, 10, 11], "flexibl": 5, "mlp": 5, "awar": 5, "128": 5, "gelu": 5, "leaky_relu": 5, "batchnorm1d": 5, "multilabel": 5, "regress": [5, 10, 11], "ignor": 5, "count": 5, "alwai": 5, "recommend": 5, "post": 5, "defin": [5, 9, 11], "everi": [5, 9], "call": [5, 9, 10], "overridden": [5, 9], "subclass": 5, "although": 5, "recip": 5, "pass": [5, 9], "within": [5, 10], "afterward": 5, "instead": [5, 9], "former": 5, "take": [5, 10], "care": 5, "hook": 5, "latter": 5, "silent": 5, "them": [5, 9], "evaluate_fn": 5, "fit_metrics_aggregation_fn": 5, "evaluate_metrics_aggregation_fn": 5, "local_epoch": [5, 9], "threshold": [5, 9], "5": [5, 6, 10], "learning_r": [5, 9], "optimizer_nam": [5, 9], "savingpath": [5, 9], "saveonround": [5, 9], "total_round": [5, 9], "split_mod": [5, 9], "client_fract": [5, 9], "hyperparamet": [5, 9, 11], "on_fit_config_fn": 5, "synchron": 5, "inspect": [5, 11], "configure_fit": 5, "per_client": [5, 9], "present": 5, "hostname_1": 5, "id1": 5, "id2": 5, "In": [5, 6, 9, 10, 11], "send": 5, "NOT": 5, "fall": 5, "match": [5, 9], "global_param": 6, "yaml": 6, "accord": 6, "base_url": 6, "path_to_project": 6, "db_config": 6, "ini": 6, "sql": [6, 10], "localhost": 6, "3306": 6, "user": [6, 7, 10], "your_usernam": 6, "password": 6, "your_password": 6, "also": [6, 11], "create_db": 6, "py": [6, 9], "mydb": 6, "connector": 6, "binaryclassif": 6, "train_epoch": 6, "6": [6, 10], "20": 6, "1e": 6, "min_evalcli": 6, "path_to_master_csv": 6, "TO": 6, "path_to_test_csv": 6, "modular": 7, "extens": 7, "framework": [7, 10], "design": [7, 10, 11], "research": [7, 10, 11], "deploy": 7, "particularli": 7, "medic": [7, 9, 10], "domain": [7, 10, 11], "support": [7, 9], "two": [7, 10, 11], "complementari": 7, "control": [7, 9], "virtual": [7, 9], "rapidli": 7, "assumpt": 7, "hypothes": 7, "befor": [7, 9, 11], "move": 7, "product": [7, 11], "readi": 7, "where": [7, 9], "agent": 7, "seamless": 7, "across": [7, 9, 10, 11], "hospit": [7, 9, 10, 11], "institut": [7, 9, 10, 11], "team": 7, "togeth": [7, 11], "complet": 7, "workflow": [7, 9, 10], "idea": 7, "For": 7, "seek": 7, "even": [7, 9], "more": [7, 9], "access": [7, 9, 10], "fulli": 7, "integr": [7, 10, 11], "applic": [7, 10], "friendli": 7, "desktop": 7, "simplifi": 7, "orchestr": [7, 9, 11], "medomicslab": 7, "bridg": 7, "gap": 7, "scientist": 7, "promot": 7, "through": [7, 9, 10], "intuit": 7, "tool": [7, 10], "autom": 7, "explor": 7, "section": 7, "below": [7, 9], "begin": 7, "understand": 7, "own": [7, 9, 11], "instal": [7, 11], "analyz": [7, 10, 11], "ideal": 7, "benchmark": 7, "transfer": [7, 11], "variat": 7, "safe": 7, "introduct": 7, "choic": 7, "deploi": 7, "workstat": 7, "protocol": 7, "peer": [7, 9], "tailscal": 7, "robust": [7, 11], "behind": 7, "privat": 7, "packag": [7, 8, 10, 11], "index": [7, 9], "search": 7, "page": 7, "subpackag": [8, 10], "content": 8, "often": 9, "locat": [9, 11], "nat": 9, "ed": 9, "router": 9, "subnet": 9, "without": 9, "public": 9, "firewal": 9, "block": 9, "inbound": 9, "vpn": 9, "isol": 9, "internet": 9, "situat": 9, "cannot": 9, "reach": 9, "itself": 9, "ha": [9, 10, 11], "To": [9, 11], "solv": 9, "over": [9, 11], "overlai": 9, "wireguard": 9, "thei": 9, "were": 9, "same": 9, "physic": 9, "countri": 9, "advantag": [9, 10], "reconfigur": 9, "most": 9, "case": 9, "end": 9, "encrypt": 9, "ensur": 9, "alreadi": 9, "third": 9, "parti": 9, "softwar": 9, "outbound": 9, "suffici": [9, 10], "go": 9, "offici": 9, "websit": 9, "ident": 9, "googl": 9, "microsoft": 9, "etc": [9, 11], "must": 9, "involv": [9, 10], "On": 9, "linux": 9, "curl": 9, "fssl": 9, "sh": 9, "sudo": 9, "up": [9, 11], "window": 9, "follow": [9, 10, 11], "wizard": 9, "maco": 9, "brew": 9, "cask": 9, "join": 9, "form": 9, "100": 9, "y": 9, "z": 9, "statu": 9, "65": 9, "215": 9, "27": 9, "72": 9, "14": 9, "33": 9, "52": 9, "usual": 9, "10": [9, 10], "custom_strategi": 9, "doe": 9, "know": [9, 10, 11], "import": 9, "client1_with_id": 9, "onli": 9, "author": 9, "further": 9, "restrict": 9, "acl": 9, "tag": 9, "ephemer": 9, "temporari": 9, "well": [9, 10], "suit": 9, "unreach": 9, "mai": [9, 10], "fail": 9, "simpl": 9, "solut": 9, "step": [9, 10, 11], "approach": 9, "infrastructur": 9, "show": [9, 11], "how": [9, 11], "multi": 9, "One": 9, "sever": [9, 11], "remot": 9, "keep": [9, 11], "share": [9, 11], "site": 9, "done": 9, "coordin": 9, "typic": 9, "reachabl": 9, "point": 9, "monitor": [9, 10], "collect": 9, "structur": [9, 11], "majoraxislength": 9, "area": 9, "eccentr": 9, "convexarea": 9, "134": 9, "10023": 9, "10450": 9, "120": 9, "57": 9, "8900": 9, "76": 9, "9100": 9, "143": 9, "34": 9, "11010": 9, "11300": 9, "identifi": [9, 11], "run_serv": 9, "here": [9, 11], "1499": 9, "1500": 9, "seen": 9, "dinf": 9, "medomi": 9, "05b": 9, "checkpoint": 9, "independ": [9, 10], "interfac": 9, "expos": 9, "__name__": 9, "__main__": 9, "expect": 9, "supervis": 9, "run_client": 9, "run_client_override_split": 9, "similar": 9, "see": [9, 11], "determinist": 9, "next": [9, 11], "subsect": 9, "dp_conf": 9, "magnitud": 9, "higher": 9, "cryptograph": 9, "rng": 9, "both": [9, 10], "wait": 9, "written": 9, "logic": 9, "sometim": 9, "fine": 9, "grain": 9, "effect": 9, "whose": [9, 11], "forc": 9, "sure": [9, 10, 11], "exactli": [9, 11], "correspond": [9, 11], "never": 9, "leav": 9, "exchang": 9, "hybrid": 10, "inspir": 10, "pysyft": 10, "main": [10, 11], "strength": 10, "developp": 10, "benifit": 10, "three": 10, "martin": [10, 11], "ai": [10, 11], "hi": 10, "interest": [10, 11], "healthcar": [10, 11], "recent": 10, "he": [10, 11], "reciev": 10, "prestigi": [10, 11], "order": 10, "studi": [10, 11], "realis": 10, "goal": 10, "develop": [10, 11], "deep": [10, 11], "preserv": [10, 11], "patient": [10, 11], "finish": 10, "first": [10, 11], "analysi": 10, "statement": 10, "realiz": 10, "good": 10, "fortun": 10, "pretti": 10, "desir": 10, "sub": [10, 11], "let": 10, "u": 10, "expir": 10, "respons": 10, "reli": 10, "leverag": 10, "subsequ": 10, "five": 10, "primari": 10, "demonstr": [10, 11], "incorpor": 10, "har": 10, "capabl": 10, "might": 10, "possess": 10, "pre": 10, "offer": 10, "enhanc": 10, "reduc": 10, "time": [10, 11], "lack": 10, "entir": 10, "scratch": 10, "hinder": 10, "abil": 10, "achiev": 10, "becom": 10, "viabl": 10, "maxim": 10, "benefit": 10, "previous": 10, "knowledg": 10, "serv": 10, "second": [10, 11], "oper": 10, "addition": 10, "relev": 10, "mainli": 10, "paradigm": 10, "mani": 10, "deal": 10, "homogen": 10, "purpos": 10, "compar": [10, 11], "holdout": 10, "final": [10, 11], "divers": 10, "By": 10, "adapt": [10, 11], "n": 10, "30": 10, "4": 10, "16": [10, 11], "7": 10, "8": 10, "encoder_hidden_s": 10, "As": 10, "part": 10, "align": 10, "deliv": 10, "effici": 10, "focus": 10, "seamlessli": 10, "realist": 11, "scenario": 11, "accompani": 11, "jupyt": 11, "guid": 11, "contact": 11, "feasibl": 11, "protect": 11, "kind": 11, "With": 11, "him": 11, "systemat": 11, "depend": 11, "env": 11, "sqlalchemi": 11, "diabet": 11, "diabetes_dataset": 11, "mysql": 11, "database_manag": 11, "simplic": 11, "root": 11, "necessari": 11, "sy": 11, "append": 11, "o": 11, "pythonpath": 11, "database_connector": 11, "databasemanag": 11, "relat": 11, "medfl_databas": 11, "db_manag": 11, "get_connect": 11, "print": 11, "ok": 11, "describ": 11, "later": 11, "partit": 11, "infer": 11, "core": 11, "now": 11, "hold": 11, "net1": 11, "deriv": 11, "auto_fl": 11, "flsetup_2": 11, "just": 11, "hospital_1": 11, "client_1_dataset": 11, "hospital_2": 11, "client_2_dataset": 11, "hospital_3": 11, "client_3_dataset": 11, "ask": 11, "consid": 11, "fl_dataset": 11, "summari": 11, "helper": 11, "dynamic_model": 11, "specific_model": 11, "bceloss": 11, "everyth": 11, "init_param": 11, "combin": 11, "fedadam": 11, "aggreg_algo": 11, "reproduc": 11, "easi": 11, "link": 11, "ppl_1": 11, "fl_pipelin": 11, "our": 11, "visual": 11, "evolut": 11, "global_accuraci": 11, "global_loss": 11, "plotter": 11, "produc": 11, "figur": 11, "curv": 11, "help": 11, "test_result": 11, "tp": 11, "fp": 11, "fn": 11, "tn": 11, "recal": 11, "ppv": 11, "auc": 11, "reus": 11, "futur": 11}, "objects": {"": [[2, 0, 0, "-", "MEDfl"]], "MEDfl": [[3, 0, 0, "-", "LearningManager"], [4, 0, 0, "-", "NetManager"], [5, 0, 0, "-", "rw"]], "MEDfl.LearningManager": [[3, 0, 0, "-", "client"], [3, 0, 0, "-", "dynamicModal"], [3, 0, 0, "-", "federated_dataset"], [3, 0, 0, "-", "flpipeline"], [3, 0, 0, "-", "model"], [3, 0, 0, "-", "plot"], [3, 0, 0, "-", "server"], [3, 0, 0, "-", "strategy"], [3, 0, 0, "-", "utils"]], "MEDfl.LearningManager.client": [[3, 1, 1, "", "FlowerClient"]], "MEDfl.LearningManager.client.FlowerClient": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "cid"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "get_parameters"], [3, 3, 1, "", "local_model"], [3, 3, 1, "", "trainloader"], [3, 2, 1, "", "validate"], [3, 3, 1, "", "valloader"]], "MEDfl.LearningManager.dynamicModal": [[3, 1, 1, "", "DynamicModel"]], "MEDfl.LearningManager.dynamicModal.DynamicModel": [[3, 2, 1, "", "create_binary_classifier"], [3, 2, 1, "", "create_convolutional_neural_network"], [3, 2, 1, "", "create_linear_regressor"], [3, 2, 1, "", "create_logistic_regressor"], [3, 2, 1, "", "create_lstm_network"], [3, 2, 1, "", "create_model"], [3, 2, 1, "", "create_multiclass_classifier"], [3, 2, 1, "", "create_recurrent_neural_network"]], "MEDfl.LearningManager.federated_dataset": [[3, 1, 1, "", "FederatedDataset"]], "MEDfl.LearningManager.federated_dataset.FederatedDataset": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create"], [3, 2, 1, "", "update"]], "MEDfl.LearningManager.flpipeline": [[3, 1, 1, "", "FLpipeline"], [3, 4, 1, "", "create_query"]], "MEDfl.LearningManager.flpipeline.FLpipeline": [[3, 2, 1, "", "auto_test"], [3, 2, 1, "", "create"], [3, 2, 1, "", "delete"], [3, 3, 1, "", "description"], [3, 3, 1, "", "name"], [3, 3, 1, "", "server"], [3, 2, 1, "", "test_by_node"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.model": [[3, 1, 1, "", "Model"]], "MEDfl.LearningManager.model.Model": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "criterion"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "get_parameters"], [3, 2, 1, "", "load_model"], [3, 3, 1, "", "model"], [3, 3, 1, "", "optimizer"], [3, 2, 1, "", "save_model"], [3, 2, 1, "", "set_parameters"], [3, 2, 1, "", "train"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.plot": [[3, 1, 1, "", "AccuracyLossPlotter"], [3, 5, 1, "", "results_dict"]], "MEDfl.LearningManager.plot.AccuracyLossPlotter": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "iterations"], [3, 3, 1, "", "metrics"], [3, 3, 1, "", "parameters"], [3, 2, 1, "", "plot_accuracy_loss"], [3, 2, 1, "", "plot_classification_report"], [3, 2, 1, "", "plot_confusion_Matrix_by_node"], [3, 2, 1, "", "plot_global_confusion_matrix"], [3, 3, 1, "", "results_dict"]], "MEDfl.LearningManager.server": [[3, 1, 1, "", "FlowerServer"]], "MEDfl.LearningManager.server.FlowerServer": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "accuracies"], [3, 2, 1, "", "client_fn"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 3, 1, "", "fed_dataset"], [3, 3, 1, "", "flower_clients"], [3, 3, 1, "", "global_model"], [3, 3, 1, "", "losses"], [3, 3, 1, "", "num_clients"], [3, 3, 1, "", "num_rounds"], [3, 2, 1, "", "run"], [3, 3, 1, "", "strategy"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.strategy": [[3, 1, 1, "", "Strategy"]], "MEDfl.LearningManager.strategy.Strategy": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create_strategy"], [3, 3, 1, "", "fraction_evaluate"], [3, 3, 1, "", "fraction_fit"], [3, 2, 1, "", "get_strategy_by_name"], [3, 3, 1, "", "initial_parameters"], [3, 3, 1, "", "min_available_clients"], [3, 3, 1, "", "min_evaluate_clients"], [3, 3, 1, "", "min_fit_clients"], [3, 3, 1, "", "name"], [3, 2, 1, "", "optuna_fed_optimization"]], "MEDfl.LearningManager.utils": [[3, 4, 1, "", "create_MEDfl_db"], [3, 4, 1, "", "custom_classification_report"], [3, 4, 1, "", "empty_db"], [3, 4, 1, "", "get_node_confusion_matrix"], [3, 4, 1, "", "get_pipeline_confusion_matrix"], [3, 4, 1, "", "get_pipeline_from_name"], [3, 4, 1, "", "get_pipeline_result"], [3, 4, 1, "", "load_db_config"], [3, 4, 1, "", "load_db_config_dep"], [3, 4, 1, "", "set_db_config"], [3, 4, 1, "", "set_db_config_dep"], [3, 4, 1, "", "test"]], "MEDfl.NetManager": [[4, 0, 0, "-", "dataset"], [4, 0, 0, "-", "flsetup"], [4, 0, 0, "-", "net_helper"], [4, 0, 0, "-", "net_manager_queries"], [4, 0, 0, "-", "network"], [4, 0, 0, "-", "node"]], "MEDfl.NetManager.dataset": [[4, 1, 1, "", "DataSet"]], "MEDfl.NetManager.dataset.DataSet": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "delete_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "update_data"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.flsetup": [[4, 1, 1, "", "FLsetup"]], "MEDfl.NetManager.flsetup.FLsetup": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create"], [4, 2, 1, "", "create_dataloader_from_node"], [4, 2, 1, "", "create_federated_dataset"], [4, 2, 1, "", "create_nodes_from_master_dataset"], [4, 2, 1, "", "delete"], [4, 2, 1, "", "get_flDataSet"], [4, 2, 1, "", "list_allsetups"], [4, 2, 1, "", "read_setup"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.net_helper": [[4, 4, 1, "", "get_feddataset_id_from_name"], [4, 4, 1, "", "get_flpipeline_from_name"], [4, 4, 1, "", "get_flsetupid_from_name"], [4, 4, 1, "", "get_netid_from_name"], [4, 4, 1, "", "get_nodeid_from_name"], [4, 4, 1, "", "is_str"], [4, 4, 1, "", "master_table_exists"], [4, 4, 1, "", "process_data_after_reading"], [4, 4, 1, "", "process_eicu"]], "MEDfl.NetManager.network": [[4, 1, 1, "", "Network"]], "MEDfl.NetManager.network.Network": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "add_node"], [4, 2, 1, "", "create_master_dataset"], [4, 2, 1, "", "create_network"], [4, 2, 1, "", "delete_network"], [4, 2, 1, "", "get_netid_from_name"], [4, 2, 1, "", "list_allnetworks"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "mtable_exists"], [4, 3, 1, "", "name"], [4, 2, 1, "", "update_network"], [4, 2, 1, "", "use_network"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.node": [[4, 1, 1, "", "Node"]], "MEDfl.NetManager.node.Node": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "assign_dataset"], [4, 2, 1, "", "check_dataset_compatibility"], [4, 2, 1, "", "create_node"], [4, 2, 1, "", "delete_node"], [4, 2, 1, "", "get_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "name"], [4, 3, 1, "", "test_fraction"], [4, 3, 1, "", "train"], [4, 2, 1, "", "unassign_dataset"], [4, 2, 1, "", "update_node"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.rw": [[5, 0, 0, "-", "client"], [5, 0, 0, "-", "model"], [5, 0, 0, "-", "server"], [5, 0, 0, "-", "strategy"]], "MEDfl.rw.client": [[5, 1, 1, "", "DPConfig"], [5, 1, 1, "", "FlowerClient"]], "MEDfl.rw.client.DPConfig": [[5, 3, 1, "", "batch_size"], [5, 3, 1, "", "max_grad_norm"], [5, 3, 1, "", "noise_multiplier"], [5, 3, 1, "", "secure_rng"]], "MEDfl.rw.client.FlowerClient": [[5, 2, 1, "", "_lazy_init_from_server_config"], [5, 2, 1, "", "evaluate"], [5, 2, 1, "", "fit"], [5, 2, 1, "", "get_parameters"], [5, 2, 1, "", "get_properties"], [5, 2, 1, "", "set_parameters"], [5, 2, 1, "", "start"]], "MEDfl.rw.model": [[5, 1, 1, "", "Net"]], "MEDfl.rw.model.Net": [[5, 2, 1, "", "forward"], [5, 2, 1, "", "predict"]], "MEDfl.rw.server": [[5, 1, 1, "", "FederatedServer"], [5, 1, 1, "", "TrackingClientManager"]], "MEDfl.rw.server.FederatedServer": [[5, 2, 1, "", "__init__"], [5, 3, 1, "", "certificates"], [5, 3, 1, "", "connected_clients"], [5, 3, 1, "", "server_address"], [5, 3, 1, "", "server_config"], [5, 2, 1, "id0", "start"], [5, 3, 1, "", "strategy"], [5, 3, 1, "", "strategy_wrapper"]], "MEDfl.rw.server.TrackingClientManager": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "_fetch_and_log_hostname"], [5, 3, 1, "", "client_properties"], [5, 2, 1, "", "register"], [5, 3, 1, "", "server"]], "MEDfl.rw.strategy": [[5, 1, 1, "", "Strategy"], [5, 4, 1, "", "aggregate_eval_metrics"], [5, 4, 1, "", "aggregate_fit_metrics"]], "MEDfl.rw.strategy.Strategy": [[5, 2, 1, "", "create_strategy"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "titleterms": {"document": [0, 7], "instal": [1, 9], "python": 1, "requir": 1, "packag": [1, 2, 3, 4, 5], "For": 1, "user": 1, "contributor": 1, "databas": [1, 10, 11], "configur": [1, 6, 9, 11], "medfl": [2, 3, 4, 5, 7, 8, 9, 11], "subpackag": 2, "modul": [2, 3, 4], "content": [2, 3, 4, 7], "learningmanag": 3, "submodul": [3, 4, 5], "client": [3, 9], "dynamicmod": 3, "federated_dataset": 3, "flpipelin": 3, "model": [3, 10, 11], "plot": [3, 11], "server": [3, 9, 11], "strategi": [3, 11], "util": 3, "netmanag": [4, 10, 11], "dataset": [4, 6, 11], "flsetup": [4, 11], "net_help": 4, "net_manager_queri": 4, "network": [4, 9, 11], "node": [4, 11], "rw": 5, "file": 6, "project": 6, "base": 6, "url": 6, "mysql": 6, "learn": [6, 9, 10, 11], "paramet": [6, 9], "welcom": 7, "get": 7, "start": 7, "simul": [7, 11], "mode": 7, "tutori": [7, 9, 11], "real": [7, 9, 10, 11], "world": [7, 9, 10, 11], "api": 7, "refer": 7, "indic": 7, "tabl": 7, "connect": 9, "behind": 9, "privat": 9, "us": 9, "tailscal": 9, "why": 9, "prerequisit": [9, 11], "creat": 9, "account": 9, "each": 9, "machin": 9, "ad": 9, "tailnet": 9, "ip": 9, "address": 9, "secur": 9, "consider": 9, "summari": 9, "feder": [9, 11], "high": 9, "level": 9, "architectur": 9, "1": [9, 11], "prepar": 9, "data": 9, "2": [9, 11], "kei": 9, "3": [9, 11], "4": [9, 11], "enabl": 9, "differenti": 9, "privaci": 9, "option": 9, "5": [9, 11], "run": 9, "experi": 9, "6": [9, 11], "custom": 9, "split": 9, "per": 9, "7": [9, 11], "introduct": 10, "scenario": 10, "manag": 10, "transfer": 10, "result": [10, 11], "test": [10, 11], "phase": 10, "choic": 10, "titl": 10, "complet": 11, "motiv": 11, "0": 11, "environ": 11, "import": 11, "creation": 11, "setup": 11, "upload": 11, "definit": 11, "dynamicmodel": 11, "8": 11, "aggreg": 11, "9": 11, "10": 11, "fl": 11, "pipelin": 11, "train": 11, "11": 11, "accuraci": 11, "loss": 11, "12": 11, "automat": 11, "storag": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Documentation": [[0, "documentation"]], "Installation": [[1, "installation"]], "Python Requirements": [[1, "python-requirements"]], "Package Installation (For Users)": [[1, "package-installation-for-users"]], "Package Installation (For Contributors)": [[1, "package-installation-for-contributors"]], "Database Configuration": [[1, "database-configuration"]], "MEDfl package": [[2, "medfl-package"]], "Subpackages": [[2, "subpackages"]], "Module contents": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [4, "module-MEDfl.NetManager"]], "MEDfl.LearningManager package": [[3, "medfl-learningmanager-package"]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "module-MEDfl.rw.client"]], "MEDfl.LearningManager.client module": [[3, "module-MEDfl.LearningManager.client"]], "MEDfl.LearningManager.dynamicModal module": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "MEDfl.LearningManager.federated_dataset module": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "MEDfl.LearningManager.flpipeline module": [[3, "module-MEDfl.LearningManager.flpipeline"]], "MEDfl.LearningManager.model module": [[3, "module-MEDfl.LearningManager.model"]], "MEDfl.LearningManager.plot module": [[3, "module-MEDfl.LearningManager.plot"]], "MEDfl.LearningManager.server module": [[3, "module-MEDfl.LearningManager.server"]], "MEDfl.LearningManager.strategy module": [[3, "module-MEDfl.LearningManager.strategy"]], "MEDfl.LearningManager.utils module": [[3, "module-MEDfl.LearningManager.utils"]], "MEDfl.NetManager package": [[4, "medfl-netmanager-package"]], "MEDfl.NetManager.dataset module": [[4, "module-MEDfl.NetManager.dataset"]], "MEDfl.NetManager.flsetup module": [[4, "module-MEDfl.NetManager.flsetup"]], "MEDfl.NetManager.net_helper module": [[4, "module-MEDfl.NetManager.net_helper"]], "MEDfl.NetManager.net_manager_queries module": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "MEDfl.NetManager.network module": [[4, "module-MEDfl.NetManager.network"]], "MEDfl.NetManager.node module": [[4, "module-MEDfl.NetManager.node"]], "MEDfl.rw package": [[5, "module-MEDfl.rw"]], "Configuration File": [[6, "configuration-file"]], "Project base url": [[6, "project-base-url"]], "MySQL Configuration": [[6, "mysql-configuration"]], "Learning Parameters": [[6, "learning-parameters"]], "DataSets": [[6, "datasets"]], "Welcome to the MEDfl Documentation": [[7, "welcome-to-the-medfl-documentation"]], "Getting Started": [[7, null]], "Simulation Mode": [[7, "simulation-mode"]], "Simulation Tutorials": [[7, null]], "Real-World Mode": [[7, "real-world-mode"]], "\ud83c\udf0d Real-World Tutorials": [[7, null]], "API Reference": [[7, "api-reference"]], "Contents": [[7, null]], "Indices and Tables": [[7, "indices-and-tables"]], "MEDfl": [[8, "medfl"]], "Connecting Clients Behind Private Networks Using Tailscale": [[9, "connecting-clients-behind-private-networks-using-tailscale"]], "Why Tailscale?": [[9, "why-tailscale"]], "Prerequisites": [[9, "prerequisites"]], "Creating a Tailscale Account": [[9, "creating-a-tailscale-account"]], "Installing Tailscale on Each Machine": [[9, "installing-tailscale-on-each-machine"]], "Adding Machines to the Tailnet": [[9, "adding-machines-to-the-tailnet"]], "Using Tailscale IP Addresses in MEDfl": [[9, "using-tailscale-ip-addresses-in-medfl"]], "Security Considerations": [[9, "security-considerations"]], "Summary": [[9, "summary"]], "Real-world Federated Learning Tutorial": [[9, "real-world-federated-learning-tutorial"]], "High-level architecture": [[9, "high-level-architecture"]], "1. Preparing client data": [[9, "preparing-client-data"]], "2. Server configuration": [[9, "server-configuration"]], "Key parameters": [[9, "key-parameters"]], "3. Client configuration": [[9, "client-configuration"]], "4. Enabling Differential Privacy (optional)": [[9, "enabling-differential-privacy-optional"]], "5. Running the experiment": [[9, "running-the-experiment"]], "6. Customizing splits per client": [[9, "customizing-splits-per-client"]], "7. Summary": [[9, "id1"]], "Introduction": [[10, "introduction"]], "Real world scenario": [[10, "real-world-scenario"]], "Database management": [[10, "database-management"]], "NetManager": [[10, "netmanager"]], "Transfer Learning": [[10, "transfer-learning"]], "Learning Manager": [[10, "learning-manager"]], "Learning Results": [[10, "learning-results"]], "Test Phases": [[10, "id2"]], "Model choice": [[10, "model-choice"]], "Title": [[10, "id3"]], "MEDfl Complete Tutorial (Simulation)": [[11, "medfl-complete-tutorial-simulation"]], "Real-world motivation": [[11, "real-world-motivation"]], "0. Prerequisites": [[11, "prerequisites"]], "1. Environment and imports": [[11, "environment-and-imports"]], "2. Database configuration": [[11, "database-configuration"]], "3. Network creation (NetManager)": [[11, "network-creation-netmanager"]], "4. Federated Learning setup (FLsetup)": [[11, "federated-learning-setup-flsetup"]], "5. Node creation and dataset upload": [[11, "node-creation-and-dataset-upload"]], "6. Federated dataset creation": [[11, "federated-dataset-creation"]], "7. Model definition (DynamicModel)": [[11, "model-definition-dynamicmodel"]], "8. Aggregation strategy": [[11, "aggregation-strategy"]], "9. Federated learning server": [[11, "federated-learning-server"]], "10. FL pipeline creation and training": [[11, "fl-pipeline-creation-and-training"]], "11. Plotting accuracy and loss": [[11, "plotting-accuracy-and-loss"]], "12. Automatic testing and result storage": [[11, "automatic-testing-and-result-storage"]]}, "indexentries": {"medfl": [[2, "module-MEDfl"]], "module": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [3, "module-MEDfl.LearningManager.client"], [3, "module-MEDfl.LearningManager.dynamicModal"], [3, "module-MEDfl.LearningManager.federated_dataset"], [3, "module-MEDfl.LearningManager.flpipeline"], [3, "module-MEDfl.LearningManager.model"], [3, "module-MEDfl.LearningManager.plot"], [3, "module-MEDfl.LearningManager.server"], [3, "module-MEDfl.LearningManager.strategy"], [3, "module-MEDfl.LearningManager.utils"], [4, "module-MEDfl.NetManager"], [4, "module-MEDfl.NetManager.dataset"], [4, "module-MEDfl.NetManager.flsetup"], [4, "module-MEDfl.NetManager.net_helper"], [4, "module-MEDfl.NetManager.net_manager_queries"], [4, "module-MEDfl.NetManager.network"], [4, "module-MEDfl.NetManager.node"], [5, "module-MEDfl.rw"], [5, "module-MEDfl.rw.client"], [5, "module-MEDfl.rw.model"], [5, "module-MEDfl.rw.server"], [5, "module-MEDfl.rw.strategy"]], "accuracylossplotter (class in medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter"]], "dynamicmodel (class in medfl.learningmanager.dynamicmodal)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel"]], "flpipeline (class in medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline"]], "federateddataset (class in medfl.learningmanager.federated_dataset)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset"]], "flowerclient (class in medfl.learningmanager.client)": [[3, "MEDfl.LearningManager.client.FlowerClient"]], "flowerserver (class in medfl.learningmanager.server)": [[3, "MEDfl.LearningManager.server.FlowerServer"]], "medfl.learningmanager": [[3, "module-MEDfl.LearningManager"]], "medfl.learningmanager.client": [[3, "module-MEDfl.LearningManager.client"]], "medfl.learningmanager.dynamicmodal": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "medfl.learningmanager.federated_dataset": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "medfl.learningmanager.flpipeline": [[3, "module-MEDfl.LearningManager.flpipeline"]], "medfl.learningmanager.model": [[3, "module-MEDfl.LearningManager.model"]], "medfl.learningmanager.plot": [[3, "module-MEDfl.LearningManager.plot"]], "medfl.learningmanager.server": [[3, "module-MEDfl.LearningManager.server"]], "medfl.learningmanager.strategy": [[3, "module-MEDfl.LearningManager.strategy"]], "medfl.learningmanager.utils": [[3, "module-MEDfl.LearningManager.utils"]], "model (class in medfl.learningmanager.model)": [[3, "MEDfl.LearningManager.model.Model"]], "strategy (class in medfl.learningmanager.strategy)": [[3, "MEDfl.LearningManager.strategy.Strategy"]], "__init__() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.__init__"]], "__init__() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.__init__"]], "__init__() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.__init__"]], "__init__() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.__init__"]], "__init__() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.__init__"]], "__init__() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.__init__"]], "accuracies (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.accuracies"]], "auto_test() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.auto_test"]], "cid (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.cid"]], "client_fn() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.client_fn"]], "create() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.create"]], "create() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.create"]], "create_medfl_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.create_MEDfl_db"]], "create_binary_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_binary_classifier"]], "create_convolutional_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_convolutional_neural_network"]], "create_linear_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_linear_regressor"]], "create_logistic_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_logistic_regressor"]], "create_lstm_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_lstm_network"]], "create_model() (medfl.learningmanager.dynamicmodal.dynamicmodel method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_model"]], "create_multiclass_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_multiclass_classifier"]], "create_query() (in module medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.create_query"]], "create_recurrent_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_recurrent_neural_network"]], "create_strategy() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.create_strategy"]], "criterion (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.criterion"]], "custom_classification_report() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.custom_classification_report"]], "delete() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.delete"]], "description (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.description"]], "diff_priv (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.diff_priv"]], "diff_priv (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.diff_priv"]], "empty_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.empty_db"]], "evaluate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.evaluate"]], "evaluate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.evaluate"]], "evaluate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.evaluate"]], "fed_dataset (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.fed_dataset"]], "fit() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.fit"]], "flower_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.flower_clients"]], "fraction_evaluate (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_evaluate"]], "fraction_fit (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_fit"]], "get_node_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_node_confusion_matrix"]], "get_parameters() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.get_parameters"]], "get_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.get_parameters"]], "get_pipeline_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_confusion_matrix"]], "get_pipeline_from_name() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_from_name"]], "get_pipeline_result() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_result"]], "get_strategy_by_name() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.get_strategy_by_name"]], "global_model (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.global_model"]], "initial_parameters (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.initial_parameters"]], "iterations (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.iterations"]], "load_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config"]], "load_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config_dep"]], "load_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.load_model"]], "local_model (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.local_model"]], "losses (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.losses"]], "metrics (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.metrics"]], "min_available_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_available_clients"]], "min_evaluate_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_evaluate_clients"]], "min_fit_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_fit_clients"]], "model (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.model"]], "name (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.name"]], "name (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.name"]], "num_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_clients"]], "num_rounds (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_rounds"]], "optimizer (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.optimizer"]], "optuna_fed_optimization() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.optuna_fed_optimization"]], "parameters (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.parameters"]], "plot_accuracy_loss() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_accuracy_loss"]], "plot_classification_report() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_classification_report"]], "plot_confusion_matrix_by_node() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_confusion_Matrix_by_node"]], "plot_global_confusion_matrix() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_global_confusion_matrix"]], "results_dict (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.results_dict"]], "results_dict (in module medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.results_dict"]], "run() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.run"]], "save_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.save_model"]], "server (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.server"]], "set_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config"]], "set_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config_dep"]], "set_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.set_parameters"]], "strategy (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.strategy"]], "test() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.test"]], "test_by_node() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.test_by_node"]], "train() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.train"]], "trainloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.trainloader"]], "update() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.update"]], "validate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.validate"]], "validate() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.validate"]], "validate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.validate"]], "validate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.validate"]], "valloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.valloader"]], "dataset (class in medfl.netmanager.dataset)": [[4, "MEDfl.NetManager.dataset.DataSet"]], "flsetup (class in medfl.netmanager.flsetup)": [[4, "MEDfl.NetManager.flsetup.FLsetup"]], "medfl.netmanager": [[4, "module-MEDfl.NetManager"]], "medfl.netmanager.dataset": [[4, "module-MEDfl.NetManager.dataset"]], "medfl.netmanager.flsetup": [[4, "module-MEDfl.NetManager.flsetup"]], "medfl.netmanager.net_helper": [[4, "module-MEDfl.NetManager.net_helper"]], "medfl.netmanager.net_manager_queries": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "medfl.netmanager.network": [[4, "module-MEDfl.NetManager.network"]], "medfl.netmanager.node": [[4, "module-MEDfl.NetManager.node"]], "network (class in medfl.netmanager.network)": [[4, "MEDfl.NetManager.network.Network"]], "node (class in medfl.netmanager.node)": [[4, "MEDfl.NetManager.node.Node"]], "__init__() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.__init__"]], "__init__() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.__init__"]], "__init__() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.__init__"]], "__init__() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.__init__"]], "add_node() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.add_node"]], "assign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.assign_dataset"]], "check_dataset_compatibility() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.check_dataset_compatibility"]], "create() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create"]], "create_dataloader_from_node() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_dataloader_from_node"]], "create_federated_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_federated_dataset"]], "create_master_dataset() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_master_dataset"]], "create_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_network"]], "create_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.create_node"]], "create_nodes_from_master_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_nodes_from_master_dataset"]], "delete() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.delete"]], "delete_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.delete_dataset"]], "delete_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.delete_network"]], "delete_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.delete_node"]], "get_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.get_dataset"]], "get_feddataset_id_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_feddataset_id_from_name"]], "get_fldataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.get_flDataSet"]], "get_flpipeline_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flpipeline_from_name"]], "get_flsetupid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flsetupid_from_name"]], "get_netid_from_name() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.get_netid_from_name"]], "get_netid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_netid_from_name"]], "get_nodeid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_nodeid_from_name"]], "is_str() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.is_str"]], "list_alldatasets() (medfl.netmanager.dataset.dataset static method)": [[4, "MEDfl.NetManager.dataset.DataSet.list_alldatasets"]], "list_alldatasets() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.list_alldatasets"]], "list_allnetworks() (medfl.netmanager.network.network static method)": [[4, "MEDfl.NetManager.network.Network.list_allnetworks"]], "list_allnodes() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.list_allnodes"]], "list_allnodes() (medfl.netmanager.node.node static method)": [[4, "MEDfl.NetManager.node.Node.list_allnodes"]], "list_allsetups() (medfl.netmanager.flsetup.flsetup static method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.list_allsetups"]], "master_table_exists() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.master_table_exists"]], "mtable_exists (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.mtable_exists"]], "name (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.name"]], "name (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.name"]], "process_data_after_reading() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_data_after_reading"]], "process_eicu() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_eicu"]], "read_setup() (medfl.netmanager.flsetup.flsetup class method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.read_setup"]], "test_fraction (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.test_fraction"]], "train (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.train"]], "unassign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.unassign_dataset"]], "update_data() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.update_data"]], "update_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.update_network"]], "update_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.update_node"]], "upload_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.upload_dataset"]], "upload_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.upload_dataset"]], "use_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.use_network"]], "validate() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.validate"]], "validate() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.validate"]], "validate() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.validate"]], "validate() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.validate"]], "dpconfig (class in medfl.rw.client)": [[5, "MEDfl.rw.client.DPConfig"]], "federatedserver (class in medfl.rw.server)": [[5, "MEDfl.rw.server.FederatedServer"]], "flowerclient (class in medfl.rw.client)": [[5, "MEDfl.rw.client.FlowerClient"]], "medfl.rw": [[5, "module-MEDfl.rw"]], "medfl.rw.client": [[5, "module-MEDfl.rw.client"]], "medfl.rw.model": [[5, "module-MEDfl.rw.model"]], "medfl.rw.server": [[5, "module-MEDfl.rw.server"]], "medfl.rw.strategy": [[5, "module-MEDfl.rw.strategy"]], "net (class in medfl.rw.model)": [[5, "MEDfl.rw.model.Net"]], "strategy (class in medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.Strategy"]], "trackingclientmanager (class in medfl.rw.server)": [[5, "MEDfl.rw.server.TrackingClientManager"]], "__init__() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.__init__"]], "__init__() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.__init__"]], "_fetch_and_log_hostname() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager._fetch_and_log_hostname"]], "_lazy_init_from_server_config() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient._lazy_init_from_server_config"]], "aggregate_eval_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_eval_metrics"]], "aggregate_fit_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_fit_metrics"]], "batch_size (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.batch_size"]], "certificates (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.certificates"]], "client_properties (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.client_properties"]], "connected_clients (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.connected_clients"]], "create_strategy() (medfl.rw.strategy.strategy method)": [[5, "MEDfl.rw.strategy.Strategy.create_strategy"]], "evaluate() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.evaluate"]], "fit() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.fit"]], "forward() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.forward"]], "get_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_parameters"]], "get_properties() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_properties"]], "max_grad_norm (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.max_grad_norm"]], "noise_multiplier (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.noise_multiplier"]], "predict() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.predict"]], "register() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.register"]], "secure_rng (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.secure_rng"]], "server (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.server"]], "server_address (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_address"]], "server_config (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_config"]], "set_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.set_parameters"]], "start() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.start"]], "start() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.start"], [5, "id0"]], "strategy (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy"]], "strategy_wrapper (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy_wrapper"]]}})
\ No newline at end of file
diff --git a/docs/_build/html/simulation_tutorials.html b/docs/_build/html/simulation_tutorials.html
index 3447744..62a8385 100644
--- a/docs/_build/html/simulation_tutorials.html
+++ b/docs/_build/html/simulation_tutorials.html
@@ -73,7 +73,8 @@
π Real-World Tutorials
-- Real-world Federated Learning Tutorial
+- Connecting Clients Behind Private Networks Using Tailscale
+- Real-world Federated Learning Tutorial
Contents
@@ -120,15 +121,8 @@ Real world scenario
Database managementο
-In this tutorial, weβll demonstrate how to initialize your database and establish its connection to MEDfl. Subsequently, weβll explore the step-by-step process of storing various pieces of information.
-Our choice for utilizing MySQL as the database system is due to its robust features, reliability, and widespread adoption in the industry. Its strong support for structured query language (SQL) and its scalability make it an ideal choice for managing the diverse data sets and configurations within MEDfl.
-
-
Before beginning, ensure that you have installed MySQL and one of the servers, such as WAMP or XAMPP , and have them running.
-To visualize your database, you can open PHPMyAdmin <https://www.phpmyadmin.net>, a web-based tool that allows for convenient management and visualization of your database.
-
-
-
-You can also find this tutorial on the repository Database management tutorial
+MEDfl uses SQLite as its default database engine.
+SQLite requires no setup and no configuration β it works automatically using a local .db file generated by MEDfl.
NetManagerο
diff --git a/docs/_build/html/simulation_tutorials_complete.html b/docs/_build/html/simulation_tutorials_complete.html
index d595981..f391d67 100644
--- a/docs/_build/html/simulation_tutorials_complete.html
+++ b/docs/_build/html/simulation_tutorials_complete.html
@@ -28,7 +28,7 @@
-
+
@@ -86,7 +86,8 @@
π Real-World Tutorials
-- Real-world Federated Learning Tutorial
+- Connecting Clients Behind Private Networks Using Tailscale
+- Real-world Federated Learning Tutorial
Contents
7. Summaryο
In this real-world tutorial, you have learned how to:
Prepare local CSV datasets for each client
diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html
index 36fb9aa..17d639a 100644
--- a/docs/_build/html/search.html
+++ b/docs/_build/html/search.html
@@ -70,7 +70,8 @@
π Real-World Tutorials
-
-
- Real-world Federated Learning Tutorial +
- Connecting Clients Behind Private Networks Using Tailscale +
- Real-world Federated Learning Tutorial
Contents
-
diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js
index 8cdecd2..707b318 100644
--- a/docs/_build/html/searchindex.js
+++ b/docs/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["Documentation", "Installation", "MEDfl", "MEDfl.LearningManager", "MEDfl.NetManager", "MEDfl.rw", "configuration_file", "index", "modules", "rw_tutorial_complete", "simulation_tutorials", "simulation_tutorials_complete"], "filenames": ["Documentation.rst", "Installation.rst", "MEDfl.rst", "MEDfl.LearningManager.rst", "MEDfl.NetManager.rst", "MEDfl.rw.rst", "configuration_file.rst", "index.rst", "modules.rst", "rw_tutorial_complete.rst", "simulation_tutorials.rst", "simulation_tutorials_complete.rst"], "titles": ["Documentation", "Installation", "MEDfl package", "MEDfl.LearningManager package", "MEDfl.NetManager package", "MEDfl.rw package", "Configuration File", "Welcome to the MEDfl Documentation", "MEDfl", "Real-world Federated Learning Tutorial", "Introduction", "MEDfl Complete Tutorial (Simulation)"], "terms": {"we": [0, 9, 10, 11], "us": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11], "sphinx": 0, "creat": [0, 1, 2, 3, 4, 6, 8, 9, 10, 11], "thi": [0, 1, 3, 5, 7, 9, 10, 11], "project": [0, 10, 11], "you": [0, 1, 6, 7, 9, 10, 11], "can": [0, 1, 5, 6, 9, 10, 11], "gener": [0, 1, 5, 10, 11], "host": [0, 5, 6, 9], "local": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11], "compil": 0, "sourc": [0, 1, 3, 4, 5], "code": [0, 1, 4], "cd": [0, 1], "doc": 0, "make": [0, 9, 10, 11], "clean": 0, "html": 0, "Then": 0, "open": [0, 10], "_build": 0, "python": [0, 7, 9, 10, 11], "m": 0, "http": [0, 1, 10], "server": [0, 1, 2, 5, 7, 8, 10], "The": [1, 3, 4, 5, 6, 9, 10, 11], "medfl": [1, 6, 9, 10], "3": [1, 5, 6, 10], "9": 1, "If": [1, 3, 4, 5], "do": [1, 5, 10], "have": [1, 3, 5, 9, 10, 11], "your": [1, 3, 6, 7, 10, 11], "machin": [1, 7, 9, 10], "download": 1, "from": [1, 3, 4, 5, 7, 9, 10, 11], "sqlite": [1, 11], "its": [1, 3, 5, 7, 9, 10, 11], "default": [1, 3, 4, 5, 9], "engin": [1, 3, 4], "setup": [1, 3, 4, 9, 10], "work": [1, 7, 10], "automat": [1, 3], "db": [1, 11], "file": [1, 3, 4, 5, 9, 10, 11], "simpli": 1, "want": [1, 6, 9], "directli": 1, "pypi": 1, "pip": 1, "latest": 1, "stabl": 1, "releas": 1, "allow": [1, 5, 7, 9, 10, 11], "start": [1, 2, 3, 5, 8, 9, 11], "immedi": 1, "collabor": [1, 7, 11], "contribut": 1, "modifi": [1, 6], "github": 1, "edit": 1, "mode": [1, 5, 9, 11], "git": 1, "clone": 1, "com": 1, "medom": 1, "ud": 1, "e": [1, 5, 9, 11], "while": [1, 5, 10, 11], "test": [1, 2, 3, 4, 5, 6, 7, 8, 9], "new": [1, 3, 4, 5, 10, 11], "featur": [1, 4, 5, 9, 10, 11], "No": 1, "i": [1, 3, 4, 5, 6, 7, 9, 10, 11], "lightweight": 1, "reliabl": [1, 10], "base": [1, 3, 4, 5, 9, 10, 11], "system": [1, 10, 11], "A": [1, 3, 4, 5, 11], "when": [1, 4, 5, 9, 10], "initi": [1, 3, 4, 5, 10, 11], "environ": [1, 3, 7, 9], "ani": [1, 3, 5, 11], "function": [1, 3, 5], "storag": [1, 10], "extern": [1, 10], "script": [1, 6], "credenti": 1, "ar": [1, 5, 9, 10, 11], "need": [1, 3, 5, 6, 11], "learningmanag": [2, 6, 7, 8, 10, 11], "submodul": [2, 8], "client": [2, 5, 7, 8, 10, 11], "flowercli": [2, 3, 5, 8, 9], "cid": [2, 3, 5, 8], "local_model": [2, 3, 8], "trainload": [2, 3, 8, 11], "valload": [2, 3, 8], "diff_priv": [2, 3, 8], "__init__": [2, 3, 4, 5, 8], "evalu": [2, 3, 5, 7, 8], "fit": [2, 3, 5, 8], "get_paramet": [2, 3, 5, 8, 11], "valid": [2, 3, 4, 5, 7, 8, 9, 10], "dynamicmod": [2, 8, 11], "dynamicmodel": [2, 3, 8, 10], "create_binary_classifi": [2, 3, 8], "create_convolutional_neural_network": [2, 3, 8], "create_linear_regressor": [2, 3, 8], "create_logistic_regressor": [2, 3, 8], "create_lstm_network": [2, 3, 8], "create_model": [2, 3, 8, 11], "create_multiclass_classifi": [2, 3, 8], "create_recurrent_neural_network": [2, 3, 8], "federated_dataset": [2, 8], "federateddataset": [2, 3, 4, 8], "updat": [2, 3, 4, 5, 6, 8, 9, 11], "flpipelin": [2, 4, 8, 11], "name": [2, 3, 4, 5, 8, 9, 11], "descript": [2, 3, 4, 8, 11], "auto_test": [2, 3, 8, 11], "delet": [2, 3, 4, 8], "test_by_nod": [2, 3, 8], "create_queri": [2, 3, 8], "model": [2, 5, 6, 7, 8, 9], "optim": [2, 3, 6, 8, 10, 11], "criterion": [2, 3, 8, 11], "load_model": [2, 3, 8], "save_model": [2, 3, 8], "set_paramet": [2, 3, 5, 8], "train": [2, 3, 4, 5, 8, 9, 10], "plot": [2, 8], "accuracylossplott": [2, 3, 8, 11], "results_dict": [2, 3, 8, 11], "paramet": [2, 3, 4, 5, 8, 10, 11], "metric": [2, 3, 5, 8, 9, 11], "iter": [2, 3, 7, 8], "plot_accuracy_loss": [2, 3, 8, 11], "plot_classification_report": [2, 3, 8], "plot_confusion_matrix_by_nod": [2, 3, 8], "plot_global_confusion_matrix": [2, 3, 8], "flowerserv": [2, 3, 8, 11], "global_model": [2, 3, 8, 11], "strategi": [2, 4, 5, 8, 9, 10], "num_round": [2, 3, 5, 6, 8, 9, 11], "num_client": [2, 3, 8, 11], "fed_dataset": [2, 3, 8, 11], "accuraci": [2, 3, 8, 9], "loss": [2, 3, 5, 8, 9], "flower_cli": [2, 3, 8], "client_fn": [2, 3, 8], "run": [2, 3, 5, 7, 8, 10, 11], "fraction_fit": [2, 3, 5, 8, 9, 11], "fraction_evalu": [2, 3, 5, 8, 11], "min_fit_cli": [2, 3, 5, 8, 9, 11], "min_evaluate_cli": [2, 3, 5, 8, 9, 11], "min_available_cli": [2, 3, 5, 8, 9, 11], "initial_paramet": [2, 3, 5, 8, 11], "create_strategi": [2, 3, 5, 8, 11], "get_strategy_by_nam": [2, 3, 8], "optuna_fed_optim": [2, 3, 8], "util": [2, 4, 8, 9, 10, 11], "create_medfl_db": [2, 3, 8, 11], "custom_classification_report": [2, 3, 8], "empty_db": [2, 3, 8], "get_node_confusion_matrix": [2, 3, 8], "get_pipeline_confusion_matrix": [2, 3, 8], "get_pipeline_from_nam": [2, 3, 8], "get_pipeline_result": [2, 3, 8], "load_db_config": [2, 3, 8], "load_db_config_dep": [2, 3, 8], "set_db_config": [2, 3, 8, 11], "set_db_config_dep": [2, 3, 8], "netmanag": [2, 7, 8], "dataset": [2, 3, 5, 8, 9, 10], "delete_dataset": [2, 4, 8], "list_alldataset": [2, 4, 8], "update_data": [2, 4, 8], "upload_dataset": [2, 4, 8, 11], "flsetup": [2, 3, 8, 10], "create_dataloader_from_nod": [2, 4, 8], "create_federated_dataset": [2, 4, 8, 11], "create_nodes_from_master_dataset": [2, 4, 8], "get_fldataset": [2, 4, 8, 11], "list_allsetup": [2, 4, 8, 11], "read_setup": [2, 4, 8], "net_help": [2, 8], "get_feddataset_id_from_nam": [2, 4, 8], "get_flpipeline_from_nam": [2, 4, 8], "get_flsetupid_from_nam": [2, 4, 8], "get_netid_from_nam": [2, 4, 8], "get_nodeid_from_nam": [2, 4, 8], "is_str": [2, 4, 8], "master_table_exist": [2, 4, 8], "process_data_after_read": [2, 4, 8], "process_eicu": [2, 4, 8], "net_manager_queri": [2, 8], "network": [2, 3, 7, 8, 10], "mtable_exist": [2, 4, 8], "add_nod": [2, 4, 8, 11], "create_master_dataset": [2, 4, 8, 11], "create_network": [2, 4, 8, 11], "delete_network": [2, 4, 8], "list_allnetwork": [2, 4, 8], "list_allnod": [2, 4, 8, 11], "update_network": [2, 4, 8], "use_network": [2, 4, 8], "node": [2, 3, 7, 8, 10], "test_fract": [2, 4, 5, 8, 9], "assign_dataset": [2, 4, 8], "check_dataset_compat": [2, 4, 8], "create_nod": [2, 4, 8], "delete_nod": [2, 4, 8], "get_dataset": [2, 4, 8], "unassign_dataset": [2, 4, 8], "update_nod": [2, 4, 8], "rw": [2, 7, 8, 9], "dpconfig": [2, 5, 8, 9], "noise_multipli": [2, 5, 8, 9], "max_grad_norm": [2, 5, 6, 8, 9], "batch_siz": [2, 5, 8, 9], "secure_rng": [2, 5, 8, 9], "_lazy_init_from_server_config": [2, 5, 8], "get_properti": [2, 5, 8], "federatedserv": [2, 5, 8, 9], "server_address": [2, 5, 8, 9], "server_config": [2, 5, 8], "strategy_wrapp": [2, 5, 8], "certif": [2, 5, 8], "connected_cli": [2, 5, 8], "trackingclientmanag": [2, 5, 8], "client_properti": [2, 5, 8], "_fetch_and_log_hostnam": [2, 5, 8], "regist": [2, 5, 8, 11], "net": [2, 5, 8, 10, 11], "forward": [2, 5, 8], "predict": [2, 3, 5, 8], "aggregate_eval_metr": [2, 5, 8], "aggregate_fit_metr": [2, 5, 8], "class": [3, 4, 5, 10, 11], "str": [3, 4, 5], "dataload": [3, 4], "bool": [3, 4, 5], "true": [3, 4, 5, 6, 9, 10, 11], "numpycli": [3, 5], "id": [3, 4, 5, 9], "type": [3, 4, 5], "feder": [3, 4, 5, 7, 10], "learn": [3, 4, 5, 7], "data": [3, 4, 5, 10, 11], "flag": [3, 4], "indic": [3, 4], "whether": [3, 4, 9], "differenti": [3, 5, 7, 10, 11], "privaci": [3, 5, 7, 10, 11], "instanc": [3, 4, 5, 9, 10], "config": [3, 5], "return": [3, 4, 5], "receiv": [3, 11], "configur": [3, 5, 7, 10], "inform": [3, 4, 10], "number": [3, 5, 11], "exampl": [3, 5, 9, 11], "tupl": 3, "current": [3, 5], "numpi": [3, 5], "arrai": 3, "object": [3, 4, 5, 10, 11], "variou": [3, 10], "neural": [3, 10], "static": [3, 4], "input_dim": [3, 5, 10, 11], "hidden_dim": [3, 5, 10, 11], "output_dim": [3, 10, 11], "activ": [3, 5, 10], "relu": [3, 5, 10], "dropout_r": [3, 10], "0": [3, 4, 5, 6, 9, 10], "batch_norm": [3, 10], "fals": [3, 4, 5, 9, 10, 11], "use_gpu": [3, 10], "binari": [3, 5, 10, 11], "classifi": [3, 11], "customiz": 3, "architectur": [3, 4, 7, 10, 11], "int": [3, 4, 5], "dimens": [3, 10], "input": [3, 4, 10, 11], "list": [3, 4, 5, 9, 10, 11], "hidden": [3, 5, 10], "layer": [3, 5, 7, 10, 11], "output": [3, 4, 5, 10, 11], "option": [3, 4, 5, 10], "float": [3, 4, 5], "dropout": [3, 5], "rate": [3, 11], "regular": 3, "appli": [3, 5, 9, 11], "batch": [3, 4, 5, 9], "normal": 3, "gpu": 3, "acceler": [3, 7], "pytorch": [3, 4], "torch": [3, 4, 11], "nn": [3, 11], "input_channel": [3, 10], "output_channel": [3, 10], "kernel_s": [3, 10], "convolut": 3, "cnn": [3, 10], "channel": 3, "size": [3, 4, 5, 9, 10, 11], "kernel": 3, "linear": [3, 5, 10], "regressor": 3, "logist": [3, 10], "input_s": [3, 10], "hidden_s": [3, 10], "long": 3, "short": 3, "term": 3, "memori": 3, "lstm": [3, 10], "model_typ": [3, 11], "params_dict": [3, 4, 10, 11], "specif": [3, 5, 9, 11], "dynam": [3, 5, 10, 11], "given": [3, 4, 11], "multiclass": [3, 5, 10, 11], "svm": 3, "recurr": 3, "autoencod": [3, 10], "dict": [3, 4, 5], "dictionari": [3, 4, 5, 9], "contain": [3, 4, 9, 10, 11], "creation": [3, 4, 7, 10], "rnn": [3, 10], "train_nod": [3, 4], "test_nod": [3, 4], "testload": 3, "repres": [3, 4, 11], "loader": [3, 5, 10], "flsetupid": [3, 4], "databas": [3, 4, 6, 7], "associ": [3, 4, 11], "flpipeid": 3, "fedid": [3, 4], "flpipe": 3, "manag": [3, 5, 7, 11], "pipelin": [3, 4, 5, 7, 10], "self": [3, 4], "none": [3, 4, 5, 9], "specifi": [3, 4, 5, 6, 10, 11], "test_frac": [3, 4, 5], "1": [3, 4, 5, 6, 10], "all": [3, 4, 5, 9, 10, 11], "fraction": [3, 4, 5, 9], "classif": [3, 10, 11], "report": [3, 11], "result": [3, 5, 7], "entri": [3, 11], "string": [3, 4, 5], "store": [3, 5, 9, 10, 11], "note": [3, 4], "placehold": [3, 5], "method": [3, 4], "implement": [3, 4, 9], "node_nam": 3, "attribut": [3, 4, 5], "rais": [3, 4], "typeerror": [3, 4], "creation_d": 3, "callabl": 3, "val_load": 3, "devic": 3, "cpu": 3, "which": [3, 4, 5, 10, 11], "perform": [3, 5, 9, 10], "ndarrai": [3, 5], "get": [3, 4, 10], "np": 3, "model_path": 3, "load": [3, 5, 9], "path": [3, 4, 5, 6, 7, 9, 11], "model_nam": 3, "save": [3, 5, 9, 11], "except": [3, 5], "an": [3, 4, 7, 9, 10, 11], "issu": 3, "dure": [3, 9], "process": [3, 4, 10], "set": [3, 5, 9, 10, 11], "train_load": 3, "epoch": [3, 5], "privacy_engin": 3, "one": [3, 5, 10, 11], "enabl": [3, 5, 7, 10, 11], "valu": [3, 4, 5], "epsilon": [3, 6], "experi": [3, 7, 11], "organ": [3, 9, 10], "uniqu": [3, 4], "rang": [3, 9], "round": [3, 5, 9, 11], "differ": [3, 10, 11], "pipeline_nam": 3, "comparison": 3, "between": [3, 7, 10, 11], "confus": [3, 11], "matrix": [3, 11], "global": [3, 5, 11], "lr": [3, 6, 11], "001": [3, 6, 11], "adam": 3, "85": 3, "89": 3, "92": 3, "94": 3, "ellipsi": 3, "2": [3, 4, 5, 6, 10], "15": [3, 9], "08": 3, "01": [3, 5, 9], "sgd": [3, 5, 6, 9, 11], "88": [3, 9], "91": [3, 9], "93": 3, "95": 3, "18": 3, "13": 3, "09": 3, "07": 3, "82": 3, "87": 3, "25": 3, "12": [3, 9], "should": [3, 5, 9], "len": [3, 11], "num": 3, "delta": [3, 6], "common": 3, "thing": 3, "aggreg": [3, 5, 9, 10], "diff_privaci": [3, 6, 11], "client_resourc": [3, 11], "num_cpu": [3, 11], "num_gpu": [3, 11], "central": [3, 9], "flower": [3, 5, 7, 9, 10, 11], "among": 3, "commun": [3, 5], "particip": [3, 9], "each": [3, 5, 9, 10, 11], "individu": 3, "server_round": 3, "dtype": 3, "union": 3, "byte": [3, 5], "fl": [3, 4, 7, 10], "scalar": [3, 5], "simul": [3, 10], "histori": [3, 11], "fedavg": [3, 5, 9, 11], "evaluation_method": 3, "minimum": 3, "avail": 3, "requir": [3, 5, 11], "parametr": 3, "distribut": [3, 7], "direct": 3, "hpo_rat": 3, "params_config": 3, "y_true": 3, "y_pred_prob": 3, "comput": [3, 5, 7], "custom": [3, 5, 10], "includ": [3, 4, 11], "sensit": [3, 11], "precis": [3, 11], "npv": [3, 11], "f1": [3, 11], "score": [3, 11], "posit": [3, 11], "like": [3, 10], "label": [3, 4, 5, 9], "y_pred": 3, "empti": [3, 4], "record": [3, 10], "multipl": 3, "tabl": [3, 4, 11], "reset": 3, "auto": 3, "increment": 3, "counter": 3, "pipeline_id": 3, "datafram": [3, 4], "panda": [3, 4, 11], "read": [3, 4], "variabl": [3, 11], "config_path": 3, "test_load": 3, "csv": [4, 5, 6, 9, 10, 11], "assum": 4, "pd": [4, 11], "Not": 4, "yet": 4, "nodeid": 4, "upload": 4, "fill_strategi": 4, "mean": 4, "fit_encod": [4, 11], "to_drop": [4, 11], "train_batch_s": [4, 6], "32": [4, 5, 6, 9, 10, 11], "test_batch_s": [4, 6], "split_frac": 4, "val_frac": [4, 5], "master": [4, 6, 11], "column_nam": 4, "column": [4, 5, 9, 11], "masterdataset": [4, 6, 11], "retriev": 4, "": [4, 5, 7, 10, 11], "about": [4, 10], "classmethod": 4, "feddataset": 4, "found": 4, "flpipelineid": 4, "netnam": 4, "netid": 4, "nodenam": 4, "data_df": 4, "row": 4, "x": [4, 5], "check": 4, "convert": 4, "accordingli": 4, "seri": 4, "exist": 4, "otherwis": [4, 5], "after": [4, 5, 11], "encod": [4, 11], "drop": [4, 11], "tensordataset": 4, "imput": 4, "miss": 4, "eicu": 4, "fill": 4, "replac": 4, "nan": 4, "unknown": 4, "integ": 4, "add": [4, 11], "path_to_csv": [4, 11], "home": 4, "usherbrook": 4, "saho6810": 4, "notebook": [4, 10, 11], "minidiabet": 4, "insert": 4, "network_nam": 4, "els": [4, 5], "dataset_nam": 4, "assign": [4, 10], "param": [4, 6, 10], "compat": 4, "belong": [4, 5], "filter": 4, "rtype": 4, "unssign": 4, "mimic_train": 4, "nois": [5, 9], "multipli": 5, "dp": [5, 9, 11], "maximum": 5, "gradient": [5, 9], "norm": [5, 9], "clip": [5, 9], "secur": [5, 7, 9], "random": 5, "data_path": [5, 9], "dp_config": [5, 9], "id_col": [5, 9], "test_id": [5, 9], "seed": [5, 9], "42": [5, 9], "real": 5, "world": 5, "connect": [5, 6, 9, 10, 11], "provid": [5, 7, 10, 11], "schema": [5, 9], "target": [5, 9, 11], "handl": [5, 11], "val": [5, 9], "split": [5, 11], "opacu": [5, 10], "address": [5, 9], "g": [5, 9, 11], "127": 5, "8080": [5, 9], "disabl": 5, "side": [5, 9, 11], "overrid": [5, 9], "select": 5, "sampl": [5, 9], "via": [5, 7, 9], "comma": [5, 9], "separ": [5, 9], "line": 5, "build": [5, 7, 9, 11], "onc": [5, 9], "enforc": [5, 9], "win": 5, "val_fract": [5, 9], "per": 5, "held": 5, "influenc": 5, "It": [5, 7, 10, 11], "arbitrari": 5, "num_exampl": 5, "map": 5, "kei": [5, 10], "back": 5, "previou": 5, "format": 5, "extend": [5, 10], "been": [5, 11], "deprec": 5, "remov": 5, "sinc": 5, "19": 5, "request": 5, "tell": 5, "along": 5, "some": [5, 10], "properti": 5, "port": [5, 6, 9], "wrap": [5, 9, 11], "launch": 5, "serverconfig": 5, "wrapper": 5, "around": 5, "actual": 5, "flwr": [5, 11], "tl": 5, "log": [5, 9], "hostnam": [5, 9], "ip": [5, 9], "bind": 5, "listen": [5, 9], "execut": [5, 7], "track": [5, 11], "simpleclientmanag": 5, "refer": 5, "async": 5, "asynchron": 5, "fetch": 5, "clientproxi": 5, "proxi": 5, "being": 5, "wa": 5, "successfulli": 5, "64": [5, 10], "batchnorm": 5, "task": [5, 6, 10, 11], "num_class": 5, "output_bia": 5, "return_logit": 5, "weight_init": 5, "kaim": 5, "modul": [5, 7, 8, 9, 10, 11], "flexibl": 5, "mlp": 5, "awar": 5, "128": 5, "gelu": 5, "leaky_relu": 5, "batchnorm1d": 5, "multilabel": 5, "regress": [5, 10, 11], "ignor": 5, "count": 5, "alwai": 5, "recommend": 5, "post": 5, "defin": [5, 9, 11], "everi": [5, 9], "call": [5, 9, 10], "overridden": [5, 9], "subclass": 5, "although": 5, "recip": 5, "pass": [5, 9], "within": [5, 10], "afterward": 5, "instead": [5, 9], "former": 5, "take": [5, 10], "care": 5, "hook": 5, "latter": 5, "silent": 5, "them": [5, 9, 10], "evaluate_fn": 5, "fit_metrics_aggregation_fn": 5, "evaluate_metrics_aggregation_fn": 5, "local_epoch": [5, 9], "threshold": [5, 9], "5": [5, 6, 10], "learning_r": [5, 9], "optimizer_nam": [5, 9], "savingpath": [5, 9], "saveonround": [5, 9], "total_round": [5, 9], "split_mod": [5, 9], "client_fract": [5, 9], "hyperparamet": [5, 9, 11], "on_fit_config_fn": 5, "synchron": 5, "inspect": [5, 11], "configure_fit": 5, "per_client": [5, 9], "present": 5, "hostname_1": 5, "id1": 5, "id2": 5, "In": [5, 6, 9, 10, 11], "send": 5, "NOT": 5, "fall": 5, "match": [5, 9], "global_param": 6, "yaml": 6, "accord": 6, "base_url": 6, "path_to_project": 6, "db_config": 6, "ini": 6, "sql": [6, 10], "localhost": 6, "3306": 6, "user": [6, 7, 10], "your_usernam": 6, "password": 6, "your_password": 6, "also": [6, 10, 11], "create_db": 6, "py": [6, 9], "mydb": 6, "connector": 6, "binaryclassif": 6, "train_epoch": 6, "6": [6, 10], "20": 6, "1e": 6, "min_evalcli": 6, "path_to_master_csv": 6, "TO": 6, "path_to_test_csv": 6, "modular": 7, "extens": 7, "framework": [7, 10], "design": [7, 10, 11], "research": [7, 10, 11], "deploy": 7, "particularli": 7, "medic": [7, 10], "domain": [7, 10, 11], "support": [7, 10], "two": [7, 10, 11], "complementari": 7, "control": [7, 9], "virtual": 7, "rapidli": 7, "assumpt": 7, "hypothes": 7, "befor": [7, 10, 11], "move": 7, "product": [7, 11], "readi": 7, "where": [7, 9], "agent": 7, "seamless": 7, "across": [7, 10, 11], "hospit": [7, 9, 10, 11], "institut": [7, 9, 10, 11], "team": 7, "togeth": [7, 11], "complet": 7, "workflow": [7, 9, 10], "idea": 7, "For": 7, "seek": 7, "even": 7, "more": [7, 9], "access": [7, 10], "fulli": 7, "integr": [7, 10, 11], "applic": [7, 10], "friendli": 7, "desktop": 7, "simplifi": 7, "orchestr": [7, 9, 11], "medomicslab": 7, "bridg": 7, "gap": 7, "scientist": 7, "promot": 7, "through": [7, 9, 10], "intuit": 7, "tool": [7, 10], "autom": 7, "explor": [7, 10], "section": 7, "below": [7, 9], "begin": [7, 10], "understand": 7, "own": [7, 9, 11], "instal": [7, 10, 11], "analyz": [7, 10, 11], "ideal": [7, 10], "benchmark": 7, "transfer": [7, 11], "variat": 7, "safe": 7, "introduct": 7, "choic": 7, "deploi": 7, "workstat": 7, "protocol": 7, "peer": 7, "tailscal": 7, "robust": [7, 10, 11], "packag": [7, 8, 10, 11], "index": [7, 9], "search": 7, "page": 7, "subpackag": [8, 10], "content": 8, "show": [9, 11], "how": [9, 10, 11], "multi": 9, "One": 9, "sever": [9, 11], "remot": 9, "keep": [9, 11], "share": [9, 11], "same": 9, "site": 9, "done": 9, "follow": [9, 10, 11], "coordin": 9, "typic": 9, "reachabl": 9, "point": 9, "monitor": [9, 10], "collect": 9, "must": 9, "structur": [9, 10, 11], "majoraxislength": 9, "area": 9, "eccentr": 9, "convexarea": 9, "134": 9, "10023": 9, "10450": 9, "120": 9, "57": 9, "8900": 9, "76": 9, "9100": 9, "143": 9, "34": 9, "11010": 9, "11300": 9, "client1_with_id": 9, "identifi": [9, 11], "run_serv": 9, "import": 9, "here": [9, 11], "1499": 9, "1500": 9, "seen": 9, "dinf": 9, "medomi": 9, "05b": 9, "10": [9, 10], "custom_strategi": 9, "checkpoint": 9, "independ": [9, 10], "interfac": 9, "expos": 9, "__name__": 9, "__main__": 9, "expect": 9, "supervis": 9, "go": 9, "often": 9, "On": 9, "run_client": 9, "run_client_override_split": 9, "similar": 9, "100": 9, "65": 9, "215": 9, "27": 9, "see": [9, 11], "public": 9, "determinist": 9, "next": [9, 11], "subsect": 9, "To": [9, 10, 11], "dp_conf": 9, "magnitud": 9, "ad": 9, "higher": 9, "cryptograph": 9, "rng": 9, "both": [9, 10], "wait": 9, "written": 9, "etc": [9, 11], "logic": 9, "sometim": 9, "fine": 9, "grain": 9, "over": [9, 11], "effect": 9, "whose": [9, 11], "forc": 9, "sure": [9, 10, 11], "exactli": [9, 11], "correspond": [9, 11], "never": 9, "leav": 9, "onli": 9, "exchang": 9, "hybrid": 10, "inspir": 10, "pysyft": 10, "main": [10, 11], "strength": 10, "developp": 10, "benifit": 10, "three": 10, "martin": [10, 11], "ai": [10, 11], "hi": 10, "interest": [10, 11], "healthcar": [10, 11], "recent": 10, "he": [10, 11], "ha": [10, 11], "reciev": 10, "prestigi": [10, 11], "order": 10, "studi": [10, 11], "realis": 10, "goal": 10, "develop": [10, 11], "deep": [10, 11], "preserv": [10, 11], "patient": [10, 11], "finish": 10, "first": [10, 11], "analysi": 10, "statement": 10, "realiz": 10, "involv": 10, "good": 10, "fortun": 10, "know": [10, 11], "pretti": 10, "desir": 10, "sub": [10, 11], "let": 10, "u": 10, "expir": 10, "well": 10, "tutori": 10, "ll": 10, "demonstr": [10, 11], "establish": 10, "subsequ": 10, "step": [10, 11], "piec": 10, "our": [10, 11], "mysql": [10, 11], "due": 10, "widespread": 10, "adopt": 10, "industri": 10, "Its": 10, "strong": 10, "queri": 10, "languag": 10, "scalabl": 10, "divers": 10, "ensur": 10, "wamp": 10, "xampp": 10, "visual": [10, 11], "phpmyadmin": 10, "www": 10, "web": 10, "conveni": 10, "find": 10, "repositori": 10, "respons": 10, "reli": 10, "leverag": 10, "five": 10, "primari": 10, "incorpor": 10, "har": 10, "capabl": 10, "might": 10, "possess": 10, "pre": 10, "offer": 10, "advantag": 10, "enhanc": 10, "reduc": 10, "time": [10, 11], "mai": 10, "lack": 10, "suffici": 10, "entir": 10, "scratch": 10, "hinder": 10, "abil": 10, "achiev": 10, "becom": 10, "viabl": 10, "maxim": 10, "benefit": 10, "previous": 10, "knowledg": 10, "serv": 10, "second": [10, 11], "oper": 10, "addition": 10, "relev": 10, "mainli": 10, "paradigm": 10, "mani": 10, "deal": 10, "homogen": 10, "purpos": 10, "compar": [10, 11], "holdout": 10, "final": [10, 11], "By": 10, "adapt": [10, 11], "n": 10, "30": 10, "4": 10, "16": [10, 11], "7": 10, "8": 10, "encoder_hidden_s": 10, "As": 10, "part": 10, "align": 10, "deliv": 10, "effici": 10, "focus": 10, "seamlessli": 10, "up": 11, "realist": 11, "scenario": 11, "accompani": 11, "jupyt": 11, "guid": 11, "contact": 11, "feasibl": 11, "protect": 11, "kind": 11, "With": 11, "him": 11, "systemat": 11, "depend": 11, "env": 11, "sqlalchemi": 11, "diabet": 11, "locat": 11, "diabetes_dataset": 11, "database_manag": 11, "simplic": 11, "root": 11, "necessari": 11, "sy": 11, "append": 11, "o": 11, "pythonpath": 11, "database_connector": 11, "databasemanag": 11, "relat": 11, "medfl_databas": 11, "db_manag": 11, "get_connect": 11, "print": 11, "ok": 11, "describ": 11, "later": 11, "partit": 11, "infer": 11, "core": 11, "now": 11, "hold": 11, "net1": 11, "deriv": 11, "auto_fl": 11, "flsetup_2": 11, "just": 11, "hospital_1": 11, "client_1_dataset": 11, "hospital_2": 11, "client_2_dataset": 11, "hospital_3": 11, "client_3_dataset": 11, "ask": 11, "consid": 11, "fl_dataset": 11, "summari": 11, "helper": 11, "dynamic_model": 11, "specific_model": 11, "bceloss": 11, "everyth": 11, "init_param": 11, "combin": 11, "fedadam": 11, "aggreg_algo": 11, "reproduc": 11, "easi": 11, "link": 11, "ppl_1": 11, "fl_pipelin": 11, "evolut": 11, "global_accuraci": 11, "global_loss": 11, "plotter": 11, "produc": 11, "figur": 11, "curv": 11, "help": 11, "test_result": 11, "tp": 11, "fp": 11, "fn": 11, "tn": 11, "recal": 11, "ppv": 11, "auc": 11, "reus": 11, "futur": 11}, "objects": {"": [[2, 0, 0, "-", "MEDfl"]], "MEDfl": [[3, 0, 0, "-", "LearningManager"], [4, 0, 0, "-", "NetManager"], [5, 0, 0, "-", "rw"]], "MEDfl.LearningManager": [[3, 0, 0, "-", "client"], [3, 0, 0, "-", "dynamicModal"], [3, 0, 0, "-", "federated_dataset"], [3, 0, 0, "-", "flpipeline"], [3, 0, 0, "-", "model"], [3, 0, 0, "-", "plot"], [3, 0, 0, "-", "server"], [3, 0, 0, "-", "strategy"], [3, 0, 0, "-", "utils"]], "MEDfl.LearningManager.client": [[3, 1, 1, "", "FlowerClient"]], "MEDfl.LearningManager.client.FlowerClient": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "cid"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "get_parameters"], [3, 3, 1, "", "local_model"], [3, 3, 1, "", "trainloader"], [3, 2, 1, "", "validate"], [3, 3, 1, "", "valloader"]], "MEDfl.LearningManager.dynamicModal": [[3, 1, 1, "", "DynamicModel"]], "MEDfl.LearningManager.dynamicModal.DynamicModel": [[3, 2, 1, "", "create_binary_classifier"], [3, 2, 1, "", "create_convolutional_neural_network"], [3, 2, 1, "", "create_linear_regressor"], [3, 2, 1, "", "create_logistic_regressor"], [3, 2, 1, "", "create_lstm_network"], [3, 2, 1, "", "create_model"], [3, 2, 1, "", "create_multiclass_classifier"], [3, 2, 1, "", "create_recurrent_neural_network"]], "MEDfl.LearningManager.federated_dataset": [[3, 1, 1, "", "FederatedDataset"]], "MEDfl.LearningManager.federated_dataset.FederatedDataset": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create"], [3, 2, 1, "", "update"]], "MEDfl.LearningManager.flpipeline": [[3, 1, 1, "", "FLpipeline"], [3, 4, 1, "", "create_query"]], "MEDfl.LearningManager.flpipeline.FLpipeline": [[3, 2, 1, "", "auto_test"], [3, 2, 1, "", "create"], [3, 2, 1, "", "delete"], [3, 3, 1, "", "description"], [3, 3, 1, "", "name"], [3, 3, 1, "", "server"], [3, 2, 1, "", "test_by_node"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.model": [[3, 1, 1, "", "Model"]], "MEDfl.LearningManager.model.Model": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "criterion"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "get_parameters"], [3, 2, 1, "", "load_model"], [3, 3, 1, "", "model"], [3, 3, 1, "", "optimizer"], [3, 2, 1, "", "save_model"], [3, 2, 1, "", "set_parameters"], [3, 2, 1, "", "train"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.plot": [[3, 1, 1, "", "AccuracyLossPlotter"], [3, 5, 1, "", "results_dict"]], "MEDfl.LearningManager.plot.AccuracyLossPlotter": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "iterations"], [3, 3, 1, "", "metrics"], [3, 3, 1, "", "parameters"], [3, 2, 1, "", "plot_accuracy_loss"], [3, 2, 1, "", "plot_classification_report"], [3, 2, 1, "", "plot_confusion_Matrix_by_node"], [3, 2, 1, "", "plot_global_confusion_matrix"], [3, 3, 1, "", "results_dict"]], "MEDfl.LearningManager.server": [[3, 1, 1, "", "FlowerServer"]], "MEDfl.LearningManager.server.FlowerServer": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "accuracies"], [3, 2, 1, "", "client_fn"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 3, 1, "", "fed_dataset"], [3, 3, 1, "", "flower_clients"], [3, 3, 1, "", "global_model"], [3, 3, 1, "", "losses"], [3, 3, 1, "", "num_clients"], [3, 3, 1, "", "num_rounds"], [3, 2, 1, "", "run"], [3, 3, 1, "", "strategy"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.strategy": [[3, 1, 1, "", "Strategy"]], "MEDfl.LearningManager.strategy.Strategy": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create_strategy"], [3, 3, 1, "", "fraction_evaluate"], [3, 3, 1, "", "fraction_fit"], [3, 2, 1, "", "get_strategy_by_name"], [3, 3, 1, "", "initial_parameters"], [3, 3, 1, "", "min_available_clients"], [3, 3, 1, "", "min_evaluate_clients"], [3, 3, 1, "", "min_fit_clients"], [3, 3, 1, "", "name"], [3, 2, 1, "", "optuna_fed_optimization"]], "MEDfl.LearningManager.utils": [[3, 4, 1, "", "create_MEDfl_db"], [3, 4, 1, "", "custom_classification_report"], [3, 4, 1, "", "empty_db"], [3, 4, 1, "", "get_node_confusion_matrix"], [3, 4, 1, "", "get_pipeline_confusion_matrix"], [3, 4, 1, "", "get_pipeline_from_name"], [3, 4, 1, "", "get_pipeline_result"], [3, 4, 1, "", "load_db_config"], [3, 4, 1, "", "load_db_config_dep"], [3, 4, 1, "", "set_db_config"], [3, 4, 1, "", "set_db_config_dep"], [3, 4, 1, "", "test"]], "MEDfl.NetManager": [[4, 0, 0, "-", "dataset"], [4, 0, 0, "-", "flsetup"], [4, 0, 0, "-", "net_helper"], [4, 0, 0, "-", "net_manager_queries"], [4, 0, 0, "-", "network"], [4, 0, 0, "-", "node"]], "MEDfl.NetManager.dataset": [[4, 1, 1, "", "DataSet"]], "MEDfl.NetManager.dataset.DataSet": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "delete_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "update_data"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.flsetup": [[4, 1, 1, "", "FLsetup"]], "MEDfl.NetManager.flsetup.FLsetup": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create"], [4, 2, 1, "", "create_dataloader_from_node"], [4, 2, 1, "", "create_federated_dataset"], [4, 2, 1, "", "create_nodes_from_master_dataset"], [4, 2, 1, "", "delete"], [4, 2, 1, "", "get_flDataSet"], [4, 2, 1, "", "list_allsetups"], [4, 2, 1, "", "read_setup"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.net_helper": [[4, 4, 1, "", "get_feddataset_id_from_name"], [4, 4, 1, "", "get_flpipeline_from_name"], [4, 4, 1, "", "get_flsetupid_from_name"], [4, 4, 1, "", "get_netid_from_name"], [4, 4, 1, "", "get_nodeid_from_name"], [4, 4, 1, "", "is_str"], [4, 4, 1, "", "master_table_exists"], [4, 4, 1, "", "process_data_after_reading"], [4, 4, 1, "", "process_eicu"]], "MEDfl.NetManager.network": [[4, 1, 1, "", "Network"]], "MEDfl.NetManager.network.Network": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "add_node"], [4, 2, 1, "", "create_master_dataset"], [4, 2, 1, "", "create_network"], [4, 2, 1, "", "delete_network"], [4, 2, 1, "", "get_netid_from_name"], [4, 2, 1, "", "list_allnetworks"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "mtable_exists"], [4, 3, 1, "", "name"], [4, 2, 1, "", "update_network"], [4, 2, 1, "", "use_network"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.node": [[4, 1, 1, "", "Node"]], "MEDfl.NetManager.node.Node": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "assign_dataset"], [4, 2, 1, "", "check_dataset_compatibility"], [4, 2, 1, "", "create_node"], [4, 2, 1, "", "delete_node"], [4, 2, 1, "", "get_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "name"], [4, 3, 1, "", "test_fraction"], [4, 3, 1, "", "train"], [4, 2, 1, "", "unassign_dataset"], [4, 2, 1, "", "update_node"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.rw": [[5, 0, 0, "-", "client"], [5, 0, 0, "-", "model"], [5, 0, 0, "-", "server"], [5, 0, 0, "-", "strategy"]], "MEDfl.rw.client": [[5, 1, 1, "", "DPConfig"], [5, 1, 1, "", "FlowerClient"]], "MEDfl.rw.client.DPConfig": [[5, 3, 1, "", "batch_size"], [5, 3, 1, "", "max_grad_norm"], [5, 3, 1, "", "noise_multiplier"], [5, 3, 1, "", "secure_rng"]], "MEDfl.rw.client.FlowerClient": [[5, 2, 1, "", "_lazy_init_from_server_config"], [5, 2, 1, "", "evaluate"], [5, 2, 1, "", "fit"], [5, 2, 1, "", "get_parameters"], [5, 2, 1, "", "get_properties"], [5, 2, 1, "", "set_parameters"], [5, 2, 1, "", "start"]], "MEDfl.rw.model": [[5, 1, 1, "", "Net"]], "MEDfl.rw.model.Net": [[5, 2, 1, "", "forward"], [5, 2, 1, "", "predict"]], "MEDfl.rw.server": [[5, 1, 1, "", "FederatedServer"], [5, 1, 1, "", "TrackingClientManager"]], "MEDfl.rw.server.FederatedServer": [[5, 2, 1, "", "__init__"], [5, 3, 1, "", "certificates"], [5, 3, 1, "", "connected_clients"], [5, 3, 1, "", "server_address"], [5, 3, 1, "", "server_config"], [5, 2, 1, "id0", "start"], [5, 3, 1, "", "strategy"], [5, 3, 1, "", "strategy_wrapper"]], "MEDfl.rw.server.TrackingClientManager": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "_fetch_and_log_hostname"], [5, 3, 1, "", "client_properties"], [5, 2, 1, "", "register"], [5, 3, 1, "", "server"]], "MEDfl.rw.strategy": [[5, 1, 1, "", "Strategy"], [5, 4, 1, "", "aggregate_eval_metrics"], [5, 4, 1, "", "aggregate_fit_metrics"]], "MEDfl.rw.strategy.Strategy": [[5, 2, 1, "", "create_strategy"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "titleterms": {"document": [0, 7], "instal": 1, "python": 1, "requir": 1, "packag": [1, 2, 3, 4, 5], "For": 1, "user": 1, "contributor": 1, "databas": [1, 10, 11], "configur": [1, 6, 9, 11], "medfl": [2, 3, 4, 5, 7, 8, 11], "subpackag": 2, "modul": [2, 3, 4], "content": [2, 3, 4, 7], "learningmanag": 3, "submodul": [3, 4, 5], "client": [3, 9], "dynamicmod": 3, "federated_dataset": 3, "flpipelin": 3, "model": [3, 10, 11], "plot": [3, 11], "server": [3, 9, 11], "strategi": [3, 11], "util": 3, "netmanag": [4, 10, 11], "dataset": [4, 6, 11], "flsetup": [4, 11], "net_help": 4, "net_manager_queri": 4, "network": [4, 11], "node": [4, 11], "rw": 5, "file": 6, "project": 6, "base": 6, "url": 6, "mysql": 6, "learn": [6, 9, 10, 11], "paramet": [6, 9], "welcom": 7, "get": 7, "start": 7, "simul": [7, 11], "mode": 7, "tutori": [7, 9, 11], "real": [7, 9, 10, 11], "world": [7, 9, 10, 11], "api": 7, "refer": 7, "indic": 7, "tabl": 7, "feder": [9, 11], "high": 9, "level": 9, "architectur": 9, "1": [9, 11], "prepar": 9, "data": 9, "2": [9, 11], "kei": 9, "3": [9, 11], "4": [9, 11], "enabl": 9, "differenti": 9, "privaci": 9, "option": 9, "5": [9, 11], "run": 9, "experi": 9, "6": [9, 11], "custom": 9, "split": 9, "per": 9, "7": [9, 11], "summari": 9, "introduct": 10, "scenario": 10, "manag": 10, "transfer": 10, "result": [10, 11], "test": [10, 11], "phase": 10, "choic": 10, "titl": 10, "complet": 11, "motiv": 11, "0": 11, "prerequisit": 11, "environ": 11, "import": 11, "creation": 11, "setup": 11, "upload": 11, "definit": 11, "dynamicmodel": 11, "8": 11, "aggreg": 11, "9": 11, "10": 11, "fl": 11, "pipelin": 11, "train": 11, "11": 11, "accuraci": 11, "loss": 11, "12": 11, "automat": 11, "storag": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Documentation": [[0, "documentation"]], "Installation": [[1, "installation"]], "Python Requirements": [[1, "python-requirements"]], "Package Installation (For Users)": [[1, "package-installation-for-users"]], "Package Installation (For Contributors)": [[1, "package-installation-for-contributors"]], "Database Configuration": [[1, "database-configuration"]], "MEDfl package": [[2, "medfl-package"]], "Subpackages": [[2, "subpackages"]], "Module contents": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [4, "module-MEDfl.NetManager"]], "MEDfl.LearningManager package": [[3, "medfl-learningmanager-package"]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "module-MEDfl.rw.client"]], "MEDfl.LearningManager.client module": [[3, "module-MEDfl.LearningManager.client"]], "MEDfl.LearningManager.dynamicModal module": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "MEDfl.LearningManager.federated_dataset module": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "MEDfl.LearningManager.flpipeline module": [[3, "module-MEDfl.LearningManager.flpipeline"]], "MEDfl.LearningManager.model module": [[3, "module-MEDfl.LearningManager.model"]], "MEDfl.LearningManager.plot module": [[3, "module-MEDfl.LearningManager.plot"]], "MEDfl.LearningManager.server module": [[3, "module-MEDfl.LearningManager.server"]], "MEDfl.LearningManager.strategy module": [[3, "module-MEDfl.LearningManager.strategy"]], "MEDfl.LearningManager.utils module": [[3, "module-MEDfl.LearningManager.utils"]], "MEDfl.NetManager package": [[4, "medfl-netmanager-package"]], "MEDfl.NetManager.dataset module": [[4, "module-MEDfl.NetManager.dataset"]], "MEDfl.NetManager.flsetup module": [[4, "module-MEDfl.NetManager.flsetup"]], "MEDfl.NetManager.net_helper module": [[4, "module-MEDfl.NetManager.net_helper"]], "MEDfl.NetManager.net_manager_queries module": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "MEDfl.NetManager.network module": [[4, "module-MEDfl.NetManager.network"]], "MEDfl.NetManager.node module": [[4, "module-MEDfl.NetManager.node"]], "MEDfl.rw package": [[5, "module-MEDfl.rw"]], "Configuration File": [[6, "configuration-file"]], "Project base url": [[6, "project-base-url"]], "MySQL Configuration": [[6, "mysql-configuration"]], "Learning Parameters": [[6, "learning-parameters"]], "DataSets": [[6, "datasets"]], "Welcome to the MEDfl Documentation": [[7, "welcome-to-the-medfl-documentation"]], "Getting Started": [[7, null]], "Simulation Mode": [[7, "simulation-mode"]], "Simulation Tutorials": [[7, null]], "Real-World Mode": [[7, "real-world-mode"]], "\ud83c\udf0d Real-World Tutorials": [[7, null]], "API Reference": [[7, "api-reference"]], "Contents": [[7, null]], "Indices and Tables": [[7, "indices-and-tables"]], "MEDfl": [[8, "medfl"]], "Real-world Federated Learning Tutorial": [[9, "real-world-federated-learning-tutorial"]], "High-level architecture": [[9, "high-level-architecture"]], "1. Preparing client data": [[9, "preparing-client-data"]], "2. Server configuration": [[9, "server-configuration"]], "Key parameters": [[9, "key-parameters"]], "3. Client configuration": [[9, "client-configuration"]], "4. Enabling Differential Privacy (optional)": [[9, "enabling-differential-privacy-optional"]], "5. Running the experiment": [[9, "running-the-experiment"]], "6. Customizing splits per client": [[9, "customizing-splits-per-client"]], "7. Summary": [[9, "summary"]], "Introduction": [[10, "introduction"]], "Real world scenario": [[10, "real-world-scenario"]], "Database management": [[10, "database-management"]], "NetManager": [[10, "netmanager"]], "Transfer Learning": [[10, "transfer-learning"]], "Learning Manager": [[10, "learning-manager"]], "Learning Results": [[10, "learning-results"]], "Test Phases": [[10, "id2"]], "Model choice": [[10, "model-choice"]], "Title": [[10, "id3"]], "MEDfl Complete Tutorial (Simulation)": [[11, "medfl-complete-tutorial-simulation"]], "Real-world motivation": [[11, "real-world-motivation"]], "0. Prerequisites": [[11, "prerequisites"]], "1. Environment and imports": [[11, "environment-and-imports"]], "2. Database configuration": [[11, "database-configuration"]], "3. Network creation (NetManager)": [[11, "network-creation-netmanager"]], "4. Federated Learning setup (FLsetup)": [[11, "federated-learning-setup-flsetup"]], "5. Node creation and dataset upload": [[11, "node-creation-and-dataset-upload"]], "6. Federated dataset creation": [[11, "federated-dataset-creation"]], "7. Model definition (DynamicModel)": [[11, "model-definition-dynamicmodel"]], "8. Aggregation strategy": [[11, "aggregation-strategy"]], "9. Federated learning server": [[11, "federated-learning-server"]], "10. FL pipeline creation and training": [[11, "fl-pipeline-creation-and-training"]], "11. Plotting accuracy and loss": [[11, "plotting-accuracy-and-loss"]], "12. Automatic testing and result storage": [[11, "automatic-testing-and-result-storage"]]}, "indexentries": {"medfl": [[2, "module-MEDfl"]], "module": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [3, "module-MEDfl.LearningManager.client"], [3, "module-MEDfl.LearningManager.dynamicModal"], [3, "module-MEDfl.LearningManager.federated_dataset"], [3, "module-MEDfl.LearningManager.flpipeline"], [3, "module-MEDfl.LearningManager.model"], [3, "module-MEDfl.LearningManager.plot"], [3, "module-MEDfl.LearningManager.server"], [3, "module-MEDfl.LearningManager.strategy"], [3, "module-MEDfl.LearningManager.utils"], [4, "module-MEDfl.NetManager"], [4, "module-MEDfl.NetManager.dataset"], [4, "module-MEDfl.NetManager.flsetup"], [4, "module-MEDfl.NetManager.net_helper"], [4, "module-MEDfl.NetManager.net_manager_queries"], [4, "module-MEDfl.NetManager.network"], [4, "module-MEDfl.NetManager.node"], [5, "module-MEDfl.rw"], [5, "module-MEDfl.rw.client"], [5, "module-MEDfl.rw.model"], [5, "module-MEDfl.rw.server"], [5, "module-MEDfl.rw.strategy"]], "accuracylossplotter (class in medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter"]], "dynamicmodel (class in medfl.learningmanager.dynamicmodal)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel"]], "flpipeline (class in medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline"]], "federateddataset (class in medfl.learningmanager.federated_dataset)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset"]], "flowerclient (class in medfl.learningmanager.client)": [[3, "MEDfl.LearningManager.client.FlowerClient"]], "flowerserver (class in medfl.learningmanager.server)": [[3, "MEDfl.LearningManager.server.FlowerServer"]], "medfl.learningmanager": [[3, "module-MEDfl.LearningManager"]], "medfl.learningmanager.client": [[3, "module-MEDfl.LearningManager.client"]], "medfl.learningmanager.dynamicmodal": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "medfl.learningmanager.federated_dataset": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "medfl.learningmanager.flpipeline": [[3, "module-MEDfl.LearningManager.flpipeline"]], "medfl.learningmanager.model": [[3, "module-MEDfl.LearningManager.model"]], "medfl.learningmanager.plot": [[3, "module-MEDfl.LearningManager.plot"]], "medfl.learningmanager.server": [[3, "module-MEDfl.LearningManager.server"]], "medfl.learningmanager.strategy": [[3, "module-MEDfl.LearningManager.strategy"]], "medfl.learningmanager.utils": [[3, "module-MEDfl.LearningManager.utils"]], "model (class in medfl.learningmanager.model)": [[3, "MEDfl.LearningManager.model.Model"]], "strategy (class in medfl.learningmanager.strategy)": [[3, "MEDfl.LearningManager.strategy.Strategy"]], "__init__() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.__init__"]], "__init__() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.__init__"]], "__init__() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.__init__"]], "__init__() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.__init__"]], "__init__() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.__init__"]], "__init__() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.__init__"]], "accuracies (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.accuracies"]], "auto_test() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.auto_test"]], "cid (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.cid"]], "client_fn() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.client_fn"]], "create() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.create"]], "create() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.create"]], "create_medfl_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.create_MEDfl_db"]], "create_binary_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_binary_classifier"]], "create_convolutional_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_convolutional_neural_network"]], "create_linear_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_linear_regressor"]], "create_logistic_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_logistic_regressor"]], "create_lstm_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_lstm_network"]], "create_model() (medfl.learningmanager.dynamicmodal.dynamicmodel method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_model"]], "create_multiclass_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_multiclass_classifier"]], "create_query() (in module medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.create_query"]], "create_recurrent_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_recurrent_neural_network"]], "create_strategy() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.create_strategy"]], "criterion (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.criterion"]], "custom_classification_report() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.custom_classification_report"]], "delete() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.delete"]], "description (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.description"]], "diff_priv (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.diff_priv"]], "diff_priv (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.diff_priv"]], "empty_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.empty_db"]], "evaluate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.evaluate"]], "evaluate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.evaluate"]], "evaluate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.evaluate"]], "fed_dataset (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.fed_dataset"]], "fit() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.fit"]], "flower_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.flower_clients"]], "fraction_evaluate (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_evaluate"]], "fraction_fit (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_fit"]], "get_node_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_node_confusion_matrix"]], "get_parameters() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.get_parameters"]], "get_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.get_parameters"]], "get_pipeline_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_confusion_matrix"]], "get_pipeline_from_name() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_from_name"]], "get_pipeline_result() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_result"]], "get_strategy_by_name() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.get_strategy_by_name"]], "global_model (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.global_model"]], "initial_parameters (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.initial_parameters"]], "iterations (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.iterations"]], "load_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config"]], "load_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config_dep"]], "load_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.load_model"]], "local_model (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.local_model"]], "losses (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.losses"]], "metrics (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.metrics"]], "min_available_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_available_clients"]], "min_evaluate_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_evaluate_clients"]], "min_fit_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_fit_clients"]], "model (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.model"]], "name (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.name"]], "name (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.name"]], "num_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_clients"]], "num_rounds (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_rounds"]], "optimizer (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.optimizer"]], "optuna_fed_optimization() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.optuna_fed_optimization"]], "parameters (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.parameters"]], "plot_accuracy_loss() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_accuracy_loss"]], "plot_classification_report() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_classification_report"]], "plot_confusion_matrix_by_node() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_confusion_Matrix_by_node"]], "plot_global_confusion_matrix() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_global_confusion_matrix"]], "results_dict (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.results_dict"]], "results_dict (in module medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.results_dict"]], "run() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.run"]], "save_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.save_model"]], "server (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.server"]], "set_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config"]], "set_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config_dep"]], "set_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.set_parameters"]], "strategy (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.strategy"]], "test() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.test"]], "test_by_node() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.test_by_node"]], "train() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.train"]], "trainloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.trainloader"]], "update() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.update"]], "validate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.validate"]], "validate() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.validate"]], "validate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.validate"]], "validate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.validate"]], "valloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.valloader"]], "dataset (class in medfl.netmanager.dataset)": [[4, "MEDfl.NetManager.dataset.DataSet"]], "flsetup (class in medfl.netmanager.flsetup)": [[4, "MEDfl.NetManager.flsetup.FLsetup"]], "medfl.netmanager": [[4, "module-MEDfl.NetManager"]], "medfl.netmanager.dataset": [[4, "module-MEDfl.NetManager.dataset"]], "medfl.netmanager.flsetup": [[4, "module-MEDfl.NetManager.flsetup"]], "medfl.netmanager.net_helper": [[4, "module-MEDfl.NetManager.net_helper"]], "medfl.netmanager.net_manager_queries": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "medfl.netmanager.network": [[4, "module-MEDfl.NetManager.network"]], "medfl.netmanager.node": [[4, "module-MEDfl.NetManager.node"]], "network (class in medfl.netmanager.network)": [[4, "MEDfl.NetManager.network.Network"]], "node (class in medfl.netmanager.node)": [[4, "MEDfl.NetManager.node.Node"]], "__init__() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.__init__"]], "__init__() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.__init__"]], "__init__() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.__init__"]], "__init__() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.__init__"]], "add_node() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.add_node"]], "assign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.assign_dataset"]], "check_dataset_compatibility() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.check_dataset_compatibility"]], "create() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create"]], "create_dataloader_from_node() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_dataloader_from_node"]], "create_federated_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_federated_dataset"]], "create_master_dataset() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_master_dataset"]], "create_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_network"]], "create_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.create_node"]], "create_nodes_from_master_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_nodes_from_master_dataset"]], "delete() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.delete"]], "delete_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.delete_dataset"]], "delete_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.delete_network"]], "delete_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.delete_node"]], "get_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.get_dataset"]], "get_feddataset_id_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_feddataset_id_from_name"]], "get_fldataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.get_flDataSet"]], "get_flpipeline_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flpipeline_from_name"]], "get_flsetupid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flsetupid_from_name"]], "get_netid_from_name() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.get_netid_from_name"]], "get_netid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_netid_from_name"]], "get_nodeid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_nodeid_from_name"]], "is_str() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.is_str"]], "list_alldatasets() (medfl.netmanager.dataset.dataset static method)": [[4, "MEDfl.NetManager.dataset.DataSet.list_alldatasets"]], "list_alldatasets() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.list_alldatasets"]], "list_allnetworks() (medfl.netmanager.network.network static method)": [[4, "MEDfl.NetManager.network.Network.list_allnetworks"]], "list_allnodes() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.list_allnodes"]], "list_allnodes() (medfl.netmanager.node.node static method)": [[4, "MEDfl.NetManager.node.Node.list_allnodes"]], "list_allsetups() (medfl.netmanager.flsetup.flsetup static method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.list_allsetups"]], "master_table_exists() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.master_table_exists"]], "mtable_exists (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.mtable_exists"]], "name (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.name"]], "name (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.name"]], "process_data_after_reading() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_data_after_reading"]], "process_eicu() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_eicu"]], "read_setup() (medfl.netmanager.flsetup.flsetup class method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.read_setup"]], "test_fraction (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.test_fraction"]], "train (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.train"]], "unassign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.unassign_dataset"]], "update_data() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.update_data"]], "update_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.update_network"]], "update_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.update_node"]], "upload_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.upload_dataset"]], "upload_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.upload_dataset"]], "use_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.use_network"]], "validate() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.validate"]], "validate() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.validate"]], "validate() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.validate"]], "validate() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.validate"]], "dpconfig (class in medfl.rw.client)": [[5, "MEDfl.rw.client.DPConfig"]], "federatedserver (class in medfl.rw.server)": [[5, "MEDfl.rw.server.FederatedServer"]], "flowerclient (class in medfl.rw.client)": [[5, "MEDfl.rw.client.FlowerClient"]], "medfl.rw": [[5, "module-MEDfl.rw"]], "medfl.rw.client": [[5, "module-MEDfl.rw.client"]], "medfl.rw.model": [[5, "module-MEDfl.rw.model"]], "medfl.rw.server": [[5, "module-MEDfl.rw.server"]], "medfl.rw.strategy": [[5, "module-MEDfl.rw.strategy"]], "net (class in medfl.rw.model)": [[5, "MEDfl.rw.model.Net"]], "strategy (class in medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.Strategy"]], "trackingclientmanager (class in medfl.rw.server)": [[5, "MEDfl.rw.server.TrackingClientManager"]], "__init__() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.__init__"]], "__init__() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.__init__"]], "_fetch_and_log_hostname() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager._fetch_and_log_hostname"]], "_lazy_init_from_server_config() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient._lazy_init_from_server_config"]], "aggregate_eval_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_eval_metrics"]], "aggregate_fit_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_fit_metrics"]], "batch_size (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.batch_size"]], "certificates (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.certificates"]], "client_properties (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.client_properties"]], "connected_clients (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.connected_clients"]], "create_strategy() (medfl.rw.strategy.strategy method)": [[5, "MEDfl.rw.strategy.Strategy.create_strategy"]], "evaluate() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.evaluate"]], "fit() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.fit"]], "forward() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.forward"]], "get_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_parameters"]], "get_properties() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_properties"]], "max_grad_norm (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.max_grad_norm"]], "noise_multiplier (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.noise_multiplier"]], "predict() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.predict"]], "register() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.register"]], "secure_rng (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.secure_rng"]], "server (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.server"]], "server_address (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_address"]], "server_config (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_config"]], "set_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.set_parameters"]], "start() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.start"]], "start() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.start"], [5, "id0"]], "strategy (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy"]], "strategy_wrapper (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy_wrapper"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["Documentation", "Installation", "MEDfl", "MEDfl.LearningManager", "MEDfl.NetManager", "MEDfl.rw", "configuration_file", "index", "modules", "rw_tutorial_complete", "simulation_tutorials", "simulation_tutorials_complete"], "filenames": ["Documentation.rst", "Installation.rst", "MEDfl.rst", "MEDfl.LearningManager.rst", "MEDfl.NetManager.rst", "MEDfl.rw.rst", "configuration_file.rst", "index.rst", "modules.rst", "rw_tutorial_complete.rst", "simulation_tutorials.rst", "simulation_tutorials_complete.rst"], "titles": ["Documentation", "Installation", "MEDfl package", "MEDfl.LearningManager package", "MEDfl.NetManager package", "MEDfl.rw package", "Configuration File", "Welcome to the MEDfl Documentation", "MEDfl", "Connecting Clients Behind Private Networks Using Tailscale", "Introduction", "MEDfl Complete Tutorial (Simulation)"], "terms": {"we": [0, 9, 11], "us": [0, 1, 3, 4, 5, 6, 7, 10, 11], "sphinx": 0, "creat": [0, 1, 2, 3, 4, 6, 8, 10, 11], "thi": [0, 1, 3, 5, 7, 9, 10, 11], "project": [0, 10, 11], "you": [0, 1, 6, 7, 9, 11], "can": [0, 1, 5, 6, 9, 11], "gener": [0, 1, 5, 10, 11], "host": [0, 5, 6, 9], "local": [0, 1, 3, 4, 5, 6, 7, 9, 10, 11], "compil": 0, "sourc": [0, 1, 3, 4, 5], "code": [0, 1, 4], "cd": [0, 1], "doc": 0, "make": [0, 9, 10, 11], "clean": 0, "html": 0, "Then": 0, "open": 0, "_build": 0, "python": [0, 7, 9, 10, 11], "m": 0, "http": [0, 1, 9], "server": [0, 1, 2, 5, 7, 8, 10], "The": [1, 3, 4, 5, 6, 9, 10, 11], "medfl": [1, 6, 10], "3": [1, 5, 6, 10], "9": 1, "If": [1, 3, 4, 5], "do": [1, 5, 10], "have": [1, 3, 5, 9, 11], "your": [1, 3, 6, 7, 9, 11], "machin": [1, 7, 10], "download": [1, 9], "from": [1, 3, 4, 5, 7, 9, 10, 11], "sqlite": [1, 10, 11], "its": [1, 3, 5, 7, 9, 10, 11], "default": [1, 3, 4, 5, 9, 10], "engin": [1, 3, 4, 10], "setup": [1, 3, 4, 9, 10], "work": [1, 7, 10], "automat": [1, 3, 9, 10], "db": [1, 10, 11], "file": [1, 3, 4, 5, 9, 10, 11], "simpli": 1, "want": [1, 6, 9], "directli": [1, 9], "pypi": 1, "pip": 1, "latest": 1, "stabl": [1, 9], "releas": 1, "allow": [1, 5, 7, 9, 10, 11], "start": [1, 2, 3, 5, 8, 9, 11], "immedi": 1, "collabor": [1, 7, 11], "contribut": 1, "modifi": [1, 6, 9], "github": [1, 9], "edit": 1, "mode": [1, 5, 9, 11], "git": 1, "clone": 1, "com": [1, 9], "medom": 1, "ud": 1, "e": [1, 5, 9, 11], "while": [1, 5, 10, 11], "test": [1, 2, 3, 4, 5, 6, 7, 8, 9], "new": [1, 3, 4, 5, 10, 11], "featur": [1, 4, 5, 9, 10, 11], "No": [1, 9], "i": [1, 3, 4, 5, 6, 7, 9, 10, 11], "lightweight": 1, "reliabl": 1, "base": [1, 3, 4, 5, 9, 10, 11], "system": [1, 10, 11], "A": [1, 3, 4, 5, 9, 11], "when": [1, 4, 5, 9, 10], "initi": [1, 3, 4, 5, 10, 11], "environ": [1, 3, 7, 9], "ani": [1, 3, 5, 11], "function": [1, 3, 5], "storag": [1, 10], "extern": [1, 10], "script": [1, 6], "credenti": 1, "ar": [1, 5, 9, 10, 11], "need": [1, 3, 5, 6, 9, 11], "learningmanag": [2, 6, 7, 8, 10, 11], "submodul": [2, 8], "client": [2, 5, 7, 8, 10, 11], "flowercli": [2, 3, 5, 8, 9], "cid": [2, 3, 5, 8], "local_model": [2, 3, 8], "trainload": [2, 3, 8, 11], "valload": [2, 3, 8], "diff_priv": [2, 3, 8], "__init__": [2, 3, 4, 5, 8], "evalu": [2, 3, 5, 7, 8], "fit": [2, 3, 5, 8], "get_paramet": [2, 3, 5, 8, 11], "valid": [2, 3, 4, 5, 7, 8, 9, 10], "dynamicmod": [2, 8, 11], "dynamicmodel": [2, 3, 8, 10], "create_binary_classifi": [2, 3, 8], "create_convolutional_neural_network": [2, 3, 8], "create_linear_regressor": [2, 3, 8], "create_logistic_regressor": [2, 3, 8], "create_lstm_network": [2, 3, 8], "create_model": [2, 3, 8, 11], "create_multiclass_classifi": [2, 3, 8], "create_recurrent_neural_network": [2, 3, 8], "federated_dataset": [2, 8], "federateddataset": [2, 3, 4, 8], "updat": [2, 3, 4, 5, 6, 8, 9, 11], "flpipelin": [2, 4, 8, 11], "name": [2, 3, 4, 5, 8, 9, 11], "descript": [2, 3, 4, 8, 11], "auto_test": [2, 3, 8, 11], "delet": [2, 3, 4, 8], "test_by_nod": [2, 3, 8], "create_queri": [2, 3, 8], "model": [2, 5, 6, 7, 8, 9], "optim": [2, 3, 6, 8, 10, 11], "criterion": [2, 3, 8, 11], "load_model": [2, 3, 8], "save_model": [2, 3, 8], "set_paramet": [2, 3, 5, 8], "train": [2, 3, 4, 5, 8, 9, 10], "plot": [2, 8], "accuracylossplott": [2, 3, 8, 11], "results_dict": [2, 3, 8, 11], "paramet": [2, 3, 4, 5, 8, 10, 11], "metric": [2, 3, 5, 8, 9, 11], "iter": [2, 3, 7, 8], "plot_accuracy_loss": [2, 3, 8, 11], "plot_classification_report": [2, 3, 8], "plot_confusion_matrix_by_nod": [2, 3, 8], "plot_global_confusion_matrix": [2, 3, 8], "flowerserv": [2, 3, 8, 11], "global_model": [2, 3, 8, 11], "strategi": [2, 4, 5, 8, 9, 10], "num_round": [2, 3, 5, 6, 8, 9, 11], "num_client": [2, 3, 8, 11], "fed_dataset": [2, 3, 8, 11], "accuraci": [2, 3, 8, 9], "loss": [2, 3, 5, 8, 9], "flower_cli": [2, 3, 8], "client_fn": [2, 3, 8], "run": [2, 3, 5, 7, 8, 11], "fraction_fit": [2, 3, 5, 8, 9, 11], "fraction_evalu": [2, 3, 5, 8, 11], "min_fit_cli": [2, 3, 5, 8, 9, 11], "min_evaluate_cli": [2, 3, 5, 8, 9, 11], "min_available_cli": [2, 3, 5, 8, 9, 11], "initial_paramet": [2, 3, 5, 8, 11], "create_strategi": [2, 3, 5, 8, 11], "get_strategy_by_nam": [2, 3, 8], "optuna_fed_optim": [2, 3, 8], "util": [2, 4, 8, 9, 10, 11], "create_medfl_db": [2, 3, 8, 11], "custom_classification_report": [2, 3, 8], "empty_db": [2, 3, 8], "get_node_confusion_matrix": [2, 3, 8], "get_pipeline_confusion_matrix": [2, 3, 8], "get_pipeline_from_nam": [2, 3, 8], "get_pipeline_result": [2, 3, 8], "load_db_config": [2, 3, 8], "load_db_config_dep": [2, 3, 8], "set_db_config": [2, 3, 8, 11], "set_db_config_dep": [2, 3, 8], "netmanag": [2, 7, 8], "dataset": [2, 3, 5, 8, 9, 10], "delete_dataset": [2, 4, 8], "list_alldataset": [2, 4, 8], "update_data": [2, 4, 8], "upload_dataset": [2, 4, 8, 11], "flsetup": [2, 3, 8, 10], "create_dataloader_from_nod": [2, 4, 8], "create_federated_dataset": [2, 4, 8, 11], "create_nodes_from_master_dataset": [2, 4, 8], "get_fldataset": [2, 4, 8, 11], "list_allsetup": [2, 4, 8, 11], "read_setup": [2, 4, 8], "net_help": [2, 8], "get_feddataset_id_from_nam": [2, 4, 8], "get_flpipeline_from_nam": [2, 4, 8], "get_flsetupid_from_nam": [2, 4, 8], "get_netid_from_nam": [2, 4, 8], "get_nodeid_from_nam": [2, 4, 8], "is_str": [2, 4, 8], "master_table_exist": [2, 4, 8], "process_data_after_read": [2, 4, 8], "process_eicu": [2, 4, 8], "net_manager_queri": [2, 8], "network": [2, 3, 7, 8, 10], "mtable_exist": [2, 4, 8], "add_nod": [2, 4, 8, 11], "create_master_dataset": [2, 4, 8, 11], "create_network": [2, 4, 8, 11], "delete_network": [2, 4, 8], "list_allnetwork": [2, 4, 8], "list_allnod": [2, 4, 8, 11], "update_network": [2, 4, 8], "use_network": [2, 4, 8], "node": [2, 3, 7, 8, 9, 10], "test_fract": [2, 4, 5, 8, 9], "assign_dataset": [2, 4, 8], "check_dataset_compat": [2, 4, 8], "create_nod": [2, 4, 8], "delete_nod": [2, 4, 8], "get_dataset": [2, 4, 8], "unassign_dataset": [2, 4, 8], "update_nod": [2, 4, 8], "rw": [2, 7, 8, 9], "dpconfig": [2, 5, 8, 9], "noise_multipli": [2, 5, 8, 9], "max_grad_norm": [2, 5, 6, 8, 9], "batch_siz": [2, 5, 8, 9], "secure_rng": [2, 5, 8, 9], "_lazy_init_from_server_config": [2, 5, 8], "get_properti": [2, 5, 8], "federatedserv": [2, 5, 8, 9], "server_address": [2, 5, 8, 9], "server_config": [2, 5, 8], "strategy_wrapp": [2, 5, 8], "certif": [2, 5, 8], "connected_cli": [2, 5, 8], "trackingclientmanag": [2, 5, 8], "client_properti": [2, 5, 8], "_fetch_and_log_hostnam": [2, 5, 8], "regist": [2, 5, 8, 11], "net": [2, 5, 8, 11], "forward": [2, 5, 8, 9], "predict": [2, 3, 5, 8], "aggregate_eval_metr": [2, 5, 8], "aggregate_fit_metr": [2, 5, 8], "class": [3, 4, 5, 10, 11], "str": [3, 4, 5], "dataload": [3, 4], "bool": [3, 4, 5], "true": [3, 4, 5, 6, 9, 10, 11], "numpycli": [3, 5], "id": [3, 4, 5, 9], "type": [3, 4, 5], "feder": [3, 4, 5, 7, 10], "learn": [3, 4, 5, 7], "data": [3, 4, 5, 10, 11], "flag": [3, 4], "indic": [3, 4], "whether": [3, 4, 9], "differenti": [3, 5, 7, 10, 11], "privaci": [3, 5, 7, 10, 11], "instanc": [3, 4, 5, 9, 10], "config": [3, 5], "return": [3, 4, 5], "receiv": [3, 9, 11], "configur": [3, 5, 7, 10], "inform": [3, 4], "number": [3, 5, 11], "exampl": [3, 5, 9, 11], "tupl": 3, "current": [3, 5], "numpi": [3, 5], "arrai": 3, "object": [3, 4, 5, 10, 11], "variou": [3, 10], "neural": [3, 10], "static": [3, 4], "input_dim": [3, 5, 10, 11], "hidden_dim": [3, 5, 10, 11], "output_dim": [3, 10, 11], "activ": [3, 5, 9, 10], "relu": [3, 5, 10], "dropout_r": [3, 10], "0": [3, 4, 5, 6, 9, 10], "batch_norm": [3, 10], "fals": [3, 4, 5, 9, 10, 11], "use_gpu": [3, 10], "binari": [3, 5, 10, 11], "classifi": [3, 11], "customiz": 3, "architectur": [3, 4, 7, 10, 11], "int": [3, 4, 5], "dimens": [3, 10], "input": [3, 4, 10, 11], "list": [3, 4, 5, 9, 10, 11], "hidden": [3, 5, 10], "layer": [3, 5, 7, 10, 11], "output": [3, 4, 5, 9, 10, 11], "option": [3, 4, 5, 10], "float": [3, 4, 5], "dropout": [3, 5], "rate": [3, 11], "regular": 3, "appli": [3, 5, 9, 11], "batch": [3, 4, 5, 9], "normal": 3, "gpu": 3, "acceler": [3, 7], "pytorch": [3, 4], "torch": [3, 4, 11], "nn": [3, 11], "input_channel": [3, 10], "output_channel": [3, 10], "kernel_s": [3, 10], "convolut": 3, "cnn": [3, 10], "channel": 3, "size": [3, 4, 5, 9, 10, 11], "kernel": 3, "linear": [3, 5, 10], "regressor": 3, "logist": [3, 10], "input_s": [3, 10], "hidden_s": [3, 10], "long": 3, "short": 3, "term": 3, "memori": 3, "lstm": [3, 10], "model_typ": [3, 11], "params_dict": [3, 4, 10, 11], "specif": [3, 5, 9, 11], "dynam": [3, 5, 10, 11], "given": [3, 4, 11], "multiclass": [3, 5, 10, 11], "svm": 3, "recurr": 3, "autoencod": [3, 10], "dict": [3, 4, 5], "dictionari": [3, 4, 5, 9], "contain": [3, 4, 9, 10, 11], "creation": [3, 4, 7, 10], "rnn": [3, 10], "train_nod": [3, 4], "test_nod": [3, 4], "testload": 3, "repres": [3, 4, 11], "loader": [3, 5, 10], "flsetupid": [3, 4], "databas": [3, 4, 6, 7], "associ": [3, 4, 9, 11], "flpipeid": 3, "fedid": [3, 4], "flpipe": 3, "manag": [3, 5, 7, 11], "pipelin": [3, 4, 5, 7, 10], "self": [3, 4], "none": [3, 4, 5, 9], "specifi": [3, 4, 5, 6, 10, 11], "test_frac": [3, 4, 5], "1": [3, 4, 5, 6, 10], "all": [3, 4, 5, 9, 10, 11], "fraction": [3, 4, 5, 9], "classif": [3, 10, 11], "report": [3, 11], "result": [3, 5, 7], "entri": [3, 11], "string": [3, 4, 5], "store": [3, 5, 9, 10, 11], "note": [3, 4], "placehold": [3, 5], "method": [3, 4], "implement": [3, 4, 9], "node_nam": 3, "attribut": [3, 4, 5], "rais": [3, 4], "typeerror": [3, 4], "creation_d": 3, "callabl": 3, "val_load": 3, "devic": [3, 9], "cpu": 3, "which": [3, 4, 5, 10, 11], "perform": [3, 5, 9, 10], "ndarrai": [3, 5], "get": [3, 4, 10], "np": 3, "model_path": 3, "load": [3, 5, 9], "path": [3, 4, 5, 6, 7, 9, 11], "model_nam": 3, "save": [3, 5, 9, 11], "except": [3, 5], "an": [3, 4, 7, 9, 10, 11], "issu": [3, 9], "dure": [3, 9], "process": [3, 4, 10], "set": [3, 5, 9, 10, 11], "train_load": 3, "epoch": [3, 5], "privacy_engin": 3, "one": [3, 5, 9, 10, 11], "enabl": [3, 5, 7, 10, 11], "valu": [3, 4, 5], "epsilon": [3, 6], "experi": [3, 7, 11], "organ": [3, 9, 10], "uniqu": [3, 4, 9], "rang": [3, 9], "round": [3, 5, 9, 11], "differ": [3, 9, 10, 11], "pipeline_nam": 3, "comparison": 3, "between": [3, 7, 9, 10, 11], "confus": [3, 11], "matrix": [3, 11], "global": [3, 5, 11], "lr": [3, 6, 11], "001": [3, 6, 11], "adam": 3, "85": 3, "89": 3, "92": 3, "94": 3, "ellipsi": 3, "2": [3, 4, 5, 6, 10], "15": [3, 9], "08": 3, "01": [3, 5, 9], "sgd": [3, 5, 6, 9, 11], "88": [3, 9], "91": [3, 9], "93": 3, "95": 3, "18": 3, "13": 3, "09": 3, "07": 3, "82": 3, "87": 3, "25": 3, "12": [3, 9], "should": [3, 5, 9], "len": [3, 11], "num": 3, "delta": [3, 6], "common": 3, "thing": 3, "aggreg": [3, 5, 9, 10], "diff_privaci": [3, 6, 11], "client_resourc": [3, 11], "num_cpu": [3, 11], "num_gpu": [3, 11], "central": [3, 9], "flower": [3, 5, 7, 9, 10, 11], "among": 3, "commun": [3, 5, 9], "particip": [3, 9], "each": [3, 5, 10, 11], "individu": 3, "server_round": 3, "dtype": 3, "union": 3, "byte": [3, 5], "fl": [3, 4, 7, 10], "scalar": [3, 5], "simul": [3, 10], "histori": [3, 11], "fedavg": [3, 5, 9, 11], "evaluation_method": 3, "minimum": 3, "avail": 3, "requir": [3, 5, 9, 10, 11], "parametr": 3, "distribut": [3, 7, 9], "direct": [3, 9], "hpo_rat": 3, "params_config": 3, "y_true": 3, "y_pred_prob": 3, "comput": [3, 5, 7], "custom": [3, 5, 10], "includ": [3, 4, 11], "sensit": [3, 9, 11], "precis": [3, 11], "npv": [3, 11], "f1": [3, 11], "score": [3, 11], "posit": [3, 11], "like": [3, 10], "label": [3, 4, 5, 9], "y_pred": 3, "empti": [3, 4], "record": [3, 10], "multipl": 3, "tabl": [3, 4, 11], "reset": 3, "auto": 3, "increment": 3, "counter": 3, "pipeline_id": 3, "datafram": [3, 4], "panda": [3, 4, 11], "read": [3, 4], "variabl": [3, 11], "config_path": 3, "test_load": 3, "csv": [4, 5, 6, 9, 10, 11], "assum": 4, "pd": [4, 11], "Not": 4, "yet": 4, "nodeid": 4, "upload": 4, "fill_strategi": 4, "mean": 4, "fit_encod": [4, 11], "to_drop": [4, 11], "train_batch_s": [4, 6], "32": [4, 5, 6, 9, 10, 11], "test_batch_s": [4, 6], "split_frac": 4, "val_frac": [4, 5], "master": [4, 6, 11], "column_nam": 4, "column": [4, 5, 9, 11], "masterdataset": [4, 6, 11], "retriev": 4, "": [4, 5, 7, 10, 11], "about": [4, 10], "classmethod": 4, "feddataset": 4, "found": 4, "flpipelineid": 4, "netnam": 4, "netid": 4, "nodenam": 4, "data_df": 4, "row": 4, "x": [4, 5, 9], "check": 4, "convert": 4, "accordingli": 4, "seri": 4, "exist": [4, 9], "otherwis": [4, 5], "after": [4, 5, 9, 11], "encod": [4, 11], "drop": [4, 11], "tensordataset": 4, "imput": 4, "miss": 4, "eicu": 4, "fill": 4, "replac": 4, "nan": 4, "unknown": 4, "integ": 4, "add": [4, 9, 11], "path_to_csv": [4, 11], "home": [4, 9], "usherbrook": 4, "saho6810": 4, "notebook": [4, 10, 11], "minidiabet": 4, "insert": 4, "network_nam": 4, "els": [4, 5], "dataset_nam": 4, "assign": [4, 9, 10], "param": [4, 6, 10], "compat": 4, "belong": [4, 5], "filter": 4, "rtype": 4, "unssign": 4, "mimic_train": 4, "nois": [5, 9], "multipli": 5, "dp": [5, 9, 11], "maximum": 5, "gradient": [5, 9], "norm": [5, 9], "clip": [5, 9], "secur": [5, 7], "random": 5, "data_path": [5, 9], "dp_config": [5, 9], "id_col": [5, 9], "test_id": [5, 9], "seed": [5, 9], "42": [5, 9], "real": 5, "world": 5, "connect": [5, 6, 7, 11], "provid": [5, 7, 9, 10, 11], "schema": [5, 9], "target": [5, 9, 11], "handl": [5, 11], "val": [5, 9], "split": [5, 11], "opacu": [5, 10], "address": 5, "g": [5, 9, 11], "127": 5, "8080": [5, 9], "disabl": 5, "side": [5, 9, 11], "overrid": [5, 9], "select": 5, "sampl": [5, 9], "via": [5, 7, 9], "comma": [5, 9], "separ": [5, 9], "line": 5, "build": [5, 7, 9, 11], "onc": [5, 9], "enforc": [5, 9], "win": 5, "val_fract": [5, 9], "per": 5, "held": 5, "influenc": 5, "It": [5, 7, 9, 10, 11], "arbitrari": 5, "num_exampl": 5, "map": 5, "kei": [5, 10], "back": 5, "previou": 5, "format": 5, "extend": [5, 10], "been": [5, 11], "deprec": 5, "remov": 5, "sinc": 5, "19": 5, "request": 5, "tell": 5, "along": 5, "some": [5, 10], "properti": 5, "port": [5, 6, 9], "wrap": [5, 9, 11], "launch": [5, 9], "serverconfig": 5, "wrapper": 5, "around": 5, "actual": 5, "flwr": [5, 11], "tl": 5, "log": [5, 9], "hostnam": [5, 9], "ip": 5, "bind": 5, "listen": [5, 9], "execut": [5, 7], "track": [5, 11], "simpleclientmanag": 5, "refer": 5, "async": 5, "asynchron": 5, "fetch": 5, "clientproxi": 5, "proxi": 5, "being": 5, "wa": 5, "successfulli": 5, "64": [5, 10], "batchnorm": 5, "task": [5, 6, 10, 11], "num_class": 5, "output_bia": 5, "return_logit": 5, "weight_init": 5, "kaim": 5, "modul": [5, 7, 8, 9, 10, 11], "flexibl": 5, "mlp": 5, "awar": 5, "128": 5, "gelu": 5, "leaky_relu": 5, "batchnorm1d": 5, "multilabel": 5, "regress": [5, 10, 11], "ignor": 5, "count": 5, "alwai": 5, "recommend": 5, "post": 5, "defin": [5, 9, 11], "everi": [5, 9], "call": [5, 9, 10], "overridden": [5, 9], "subclass": 5, "although": 5, "recip": 5, "pass": [5, 9], "within": [5, 10], "afterward": 5, "instead": [5, 9], "former": 5, "take": [5, 10], "care": 5, "hook": 5, "latter": 5, "silent": 5, "them": [5, 9], "evaluate_fn": 5, "fit_metrics_aggregation_fn": 5, "evaluate_metrics_aggregation_fn": 5, "local_epoch": [5, 9], "threshold": [5, 9], "5": [5, 6, 10], "learning_r": [5, 9], "optimizer_nam": [5, 9], "savingpath": [5, 9], "saveonround": [5, 9], "total_round": [5, 9], "split_mod": [5, 9], "client_fract": [5, 9], "hyperparamet": [5, 9, 11], "on_fit_config_fn": 5, "synchron": 5, "inspect": [5, 11], "configure_fit": 5, "per_client": [5, 9], "present": 5, "hostname_1": 5, "id1": 5, "id2": 5, "In": [5, 6, 9, 10, 11], "send": 5, "NOT": 5, "fall": 5, "match": [5, 9], "global_param": 6, "yaml": 6, "accord": 6, "base_url": 6, "path_to_project": 6, "db_config": 6, "ini": 6, "sql": [6, 10], "localhost": 6, "3306": 6, "user": [6, 7, 10], "your_usernam": 6, "password": 6, "your_password": 6, "also": [6, 11], "create_db": 6, "py": [6, 9], "mydb": 6, "connector": 6, "binaryclassif": 6, "train_epoch": 6, "6": [6, 10], "20": 6, "1e": 6, "min_evalcli": 6, "path_to_master_csv": 6, "TO": 6, "path_to_test_csv": 6, "modular": 7, "extens": 7, "framework": [7, 10], "design": [7, 10, 11], "research": [7, 10, 11], "deploy": 7, "particularli": 7, "medic": [7, 9, 10], "domain": [7, 10, 11], "support": [7, 9], "two": [7, 10, 11], "complementari": 7, "control": [7, 9], "virtual": [7, 9], "rapidli": 7, "assumpt": 7, "hypothes": 7, "befor": [7, 9, 11], "move": 7, "product": [7, 11], "readi": 7, "where": [7, 9], "agent": 7, "seamless": 7, "across": [7, 9, 10, 11], "hospit": [7, 9, 10, 11], "institut": [7, 9, 10, 11], "team": 7, "togeth": [7, 11], "complet": 7, "workflow": [7, 9, 10], "idea": 7, "For": 7, "seek": 7, "even": [7, 9], "more": [7, 9], "access": [7, 9, 10], "fulli": 7, "integr": [7, 10, 11], "applic": [7, 10], "friendli": 7, "desktop": 7, "simplifi": 7, "orchestr": [7, 9, 11], "medomicslab": 7, "bridg": 7, "gap": 7, "scientist": 7, "promot": 7, "through": [7, 9, 10], "intuit": 7, "tool": [7, 10], "autom": 7, "explor": 7, "section": 7, "below": [7, 9], "begin": 7, "understand": 7, "own": [7, 9, 11], "instal": [7, 11], "analyz": [7, 10, 11], "ideal": 7, "benchmark": 7, "transfer": [7, 11], "variat": 7, "safe": 7, "introduct": 7, "choic": 7, "deploi": 7, "workstat": 7, "protocol": 7, "peer": [7, 9], "tailscal": 7, "robust": [7, 11], "behind": 7, "privat": 7, "packag": [7, 8, 10, 11], "index": [7, 9], "search": 7, "page": 7, "subpackag": [8, 10], "content": 8, "often": 9, "locat": [9, 11], "nat": 9, "ed": 9, "router": 9, "subnet": 9, "without": 9, "public": 9, "firewal": 9, "block": 9, "inbound": 9, "vpn": 9, "isol": 9, "internet": 9, "situat": 9, "cannot": 9, "reach": 9, "itself": 9, "ha": [9, 10, 11], "To": [9, 11], "solv": 9, "over": [9, 11], "overlai": 9, "wireguard": 9, "thei": 9, "were": 9, "same": 9, "physic": 9, "countri": 9, "advantag": [9, 10], "reconfigur": 9, "most": 9, "case": 9, "end": 9, "encrypt": 9, "ensur": 9, "alreadi": 9, "third": 9, "parti": 9, "softwar": 9, "outbound": 9, "suffici": [9, 10], "go": 9, "offici": 9, "websit": 9, "ident": 9, "googl": 9, "microsoft": 9, "etc": [9, 11], "must": 9, "involv": [9, 10], "On": 9, "linux": 9, "curl": 9, "fssl": 9, "sh": 9, "sudo": 9, "up": [9, 11], "window": 9, "follow": [9, 10, 11], "wizard": 9, "maco": 9, "brew": 9, "cask": 9, "join": 9, "form": 9, "100": 9, "y": 9, "z": 9, "statu": 9, "65": 9, "215": 9, "27": 9, "72": 9, "14": 9, "33": 9, "52": 9, "usual": 9, "10": [9, 10], "custom_strategi": 9, "doe": 9, "know": [9, 10, 11], "import": 9, "client1_with_id": 9, "onli": 9, "author": 9, "further": 9, "restrict": 9, "acl": 9, "tag": 9, "ephemer": 9, "temporari": 9, "well": [9, 10], "suit": 9, "unreach": 9, "mai": [9, 10], "fail": 9, "simpl": 9, "solut": 9, "step": [9, 10, 11], "approach": 9, "infrastructur": 9, "show": [9, 11], "how": [9, 11], "multi": 9, "One": 9, "sever": [9, 11], "remot": 9, "keep": [9, 11], "share": [9, 11], "site": 9, "done": 9, "coordin": 9, "typic": 9, "reachabl": 9, "point": 9, "monitor": [9, 10], "collect": 9, "structur": [9, 11], "majoraxislength": 9, "area": 9, "eccentr": 9, "convexarea": 9, "134": 9, "10023": 9, "10450": 9, "120": 9, "57": 9, "8900": 9, "76": 9, "9100": 9, "143": 9, "34": 9, "11010": 9, "11300": 9, "identifi": [9, 11], "run_serv": 9, "here": [9, 11], "1499": 9, "1500": 9, "seen": 9, "dinf": 9, "medomi": 9, "05b": 9, "checkpoint": 9, "independ": [9, 10], "interfac": 9, "expos": 9, "__name__": 9, "__main__": 9, "expect": 9, "supervis": 9, "run_client": 9, "run_client_override_split": 9, "similar": 9, "see": [9, 11], "determinist": 9, "next": [9, 11], "subsect": 9, "dp_conf": 9, "magnitud": 9, "higher": 9, "cryptograph": 9, "rng": 9, "both": [9, 10], "wait": 9, "written": 9, "logic": 9, "sometim": 9, "fine": 9, "grain": 9, "effect": 9, "whose": [9, 11], "forc": 9, "sure": [9, 10, 11], "exactli": [9, 11], "correspond": [9, 11], "never": 9, "leav": 9, "exchang": 9, "hybrid": 10, "inspir": 10, "pysyft": 10, "main": [10, 11], "strength": 10, "developp": 10, "benifit": 10, "three": 10, "martin": [10, 11], "ai": [10, 11], "hi": 10, "interest": [10, 11], "healthcar": [10, 11], "recent": 10, "he": [10, 11], "reciev": 10, "prestigi": [10, 11], "order": 10, "studi": [10, 11], "realis": 10, "goal": 10, "develop": [10, 11], "deep": [10, 11], "preserv": [10, 11], "patient": [10, 11], "finish": 10, "first": [10, 11], "analysi": 10, "statement": 10, "realiz": 10, "good": 10, "fortun": 10, "pretti": 10, "desir": 10, "sub": [10, 11], "let": 10, "u": 10, "expir": 10, "respons": 10, "reli": 10, "leverag": 10, "subsequ": 10, "five": 10, "primari": 10, "demonstr": [10, 11], "incorpor": 10, "har": 10, "capabl": 10, "might": 10, "possess": 10, "pre": 10, "offer": 10, "enhanc": 10, "reduc": 10, "time": [10, 11], "lack": 10, "entir": 10, "scratch": 10, "hinder": 10, "abil": 10, "achiev": 10, "becom": 10, "viabl": 10, "maxim": 10, "benefit": 10, "previous": 10, "knowledg": 10, "serv": 10, "second": [10, 11], "oper": 10, "addition": 10, "relev": 10, "mainli": 10, "paradigm": 10, "mani": 10, "deal": 10, "homogen": 10, "purpos": 10, "compar": [10, 11], "holdout": 10, "final": [10, 11], "divers": 10, "By": 10, "adapt": [10, 11], "n": 10, "30": 10, "4": 10, "16": [10, 11], "7": 10, "8": 10, "encoder_hidden_s": 10, "As": 10, "part": 10, "align": 10, "deliv": 10, "effici": 10, "focus": 10, "seamlessli": 10, "realist": 11, "scenario": 11, "accompani": 11, "jupyt": 11, "guid": 11, "contact": 11, "feasibl": 11, "protect": 11, "kind": 11, "With": 11, "him": 11, "systemat": 11, "depend": 11, "env": 11, "sqlalchemi": 11, "diabet": 11, "diabetes_dataset": 11, "mysql": 11, "database_manag": 11, "simplic": 11, "root": 11, "necessari": 11, "sy": 11, "append": 11, "o": 11, "pythonpath": 11, "database_connector": 11, "databasemanag": 11, "relat": 11, "medfl_databas": 11, "db_manag": 11, "get_connect": 11, "print": 11, "ok": 11, "describ": 11, "later": 11, "partit": 11, "infer": 11, "core": 11, "now": 11, "hold": 11, "net1": 11, "deriv": 11, "auto_fl": 11, "flsetup_2": 11, "just": 11, "hospital_1": 11, "client_1_dataset": 11, "hospital_2": 11, "client_2_dataset": 11, "hospital_3": 11, "client_3_dataset": 11, "ask": 11, "consid": 11, "fl_dataset": 11, "summari": 11, "helper": 11, "dynamic_model": 11, "specific_model": 11, "bceloss": 11, "everyth": 11, "init_param": 11, "combin": 11, "fedadam": 11, "aggreg_algo": 11, "reproduc": 11, "easi": 11, "link": 11, "ppl_1": 11, "fl_pipelin": 11, "our": 11, "visual": 11, "evolut": 11, "global_accuraci": 11, "global_loss": 11, "plotter": 11, "produc": 11, "figur": 11, "curv": 11, "help": 11, "test_result": 11, "tp": 11, "fp": 11, "fn": 11, "tn": 11, "recal": 11, "ppv": 11, "auc": 11, "reus": 11, "futur": 11}, "objects": {"": [[2, 0, 0, "-", "MEDfl"]], "MEDfl": [[3, 0, 0, "-", "LearningManager"], [4, 0, 0, "-", "NetManager"], [5, 0, 0, "-", "rw"]], "MEDfl.LearningManager": [[3, 0, 0, "-", "client"], [3, 0, 0, "-", "dynamicModal"], [3, 0, 0, "-", "federated_dataset"], [3, 0, 0, "-", "flpipeline"], [3, 0, 0, "-", "model"], [3, 0, 0, "-", "plot"], [3, 0, 0, "-", "server"], [3, 0, 0, "-", "strategy"], [3, 0, 0, "-", "utils"]], "MEDfl.LearningManager.client": [[3, 1, 1, "", "FlowerClient"]], "MEDfl.LearningManager.client.FlowerClient": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "cid"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "fit"], [3, 2, 1, "", "get_parameters"], [3, 3, 1, "", "local_model"], [3, 3, 1, "", "trainloader"], [3, 2, 1, "", "validate"], [3, 3, 1, "", "valloader"]], "MEDfl.LearningManager.dynamicModal": [[3, 1, 1, "", "DynamicModel"]], "MEDfl.LearningManager.dynamicModal.DynamicModel": [[3, 2, 1, "", "create_binary_classifier"], [3, 2, 1, "", "create_convolutional_neural_network"], [3, 2, 1, "", "create_linear_regressor"], [3, 2, 1, "", "create_logistic_regressor"], [3, 2, 1, "", "create_lstm_network"], [3, 2, 1, "", "create_model"], [3, 2, 1, "", "create_multiclass_classifier"], [3, 2, 1, "", "create_recurrent_neural_network"]], "MEDfl.LearningManager.federated_dataset": [[3, 1, 1, "", "FederatedDataset"]], "MEDfl.LearningManager.federated_dataset.FederatedDataset": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create"], [3, 2, 1, "", "update"]], "MEDfl.LearningManager.flpipeline": [[3, 1, 1, "", "FLpipeline"], [3, 4, 1, "", "create_query"]], "MEDfl.LearningManager.flpipeline.FLpipeline": [[3, 2, 1, "", "auto_test"], [3, 2, 1, "", "create"], [3, 2, 1, "", "delete"], [3, 3, 1, "", "description"], [3, 3, 1, "", "name"], [3, 3, 1, "", "server"], [3, 2, 1, "", "test_by_node"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.model": [[3, 1, 1, "", "Model"]], "MEDfl.LearningManager.model.Model": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "criterion"], [3, 2, 1, "", "evaluate"], [3, 2, 1, "", "get_parameters"], [3, 2, 1, "", "load_model"], [3, 3, 1, "", "model"], [3, 3, 1, "", "optimizer"], [3, 2, 1, "", "save_model"], [3, 2, 1, "", "set_parameters"], [3, 2, 1, "", "train"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.plot": [[3, 1, 1, "", "AccuracyLossPlotter"], [3, 5, 1, "", "results_dict"]], "MEDfl.LearningManager.plot.AccuracyLossPlotter": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "iterations"], [3, 3, 1, "", "metrics"], [3, 3, 1, "", "parameters"], [3, 2, 1, "", "plot_accuracy_loss"], [3, 2, 1, "", "plot_classification_report"], [3, 2, 1, "", "plot_confusion_Matrix_by_node"], [3, 2, 1, "", "plot_global_confusion_matrix"], [3, 3, 1, "", "results_dict"]], "MEDfl.LearningManager.server": [[3, 1, 1, "", "FlowerServer"]], "MEDfl.LearningManager.server.FlowerServer": [[3, 2, 1, "", "__init__"], [3, 3, 1, "", "accuracies"], [3, 2, 1, "", "client_fn"], [3, 3, 1, "", "diff_priv"], [3, 2, 1, "", "evaluate"], [3, 3, 1, "", "fed_dataset"], [3, 3, 1, "", "flower_clients"], [3, 3, 1, "", "global_model"], [3, 3, 1, "", "losses"], [3, 3, 1, "", "num_clients"], [3, 3, 1, "", "num_rounds"], [3, 2, 1, "", "run"], [3, 3, 1, "", "strategy"], [3, 2, 1, "", "validate"]], "MEDfl.LearningManager.strategy": [[3, 1, 1, "", "Strategy"]], "MEDfl.LearningManager.strategy.Strategy": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "create_strategy"], [3, 3, 1, "", "fraction_evaluate"], [3, 3, 1, "", "fraction_fit"], [3, 2, 1, "", "get_strategy_by_name"], [3, 3, 1, "", "initial_parameters"], [3, 3, 1, "", "min_available_clients"], [3, 3, 1, "", "min_evaluate_clients"], [3, 3, 1, "", "min_fit_clients"], [3, 3, 1, "", "name"], [3, 2, 1, "", "optuna_fed_optimization"]], "MEDfl.LearningManager.utils": [[3, 4, 1, "", "create_MEDfl_db"], [3, 4, 1, "", "custom_classification_report"], [3, 4, 1, "", "empty_db"], [3, 4, 1, "", "get_node_confusion_matrix"], [3, 4, 1, "", "get_pipeline_confusion_matrix"], [3, 4, 1, "", "get_pipeline_from_name"], [3, 4, 1, "", "get_pipeline_result"], [3, 4, 1, "", "load_db_config"], [3, 4, 1, "", "load_db_config_dep"], [3, 4, 1, "", "set_db_config"], [3, 4, 1, "", "set_db_config_dep"], [3, 4, 1, "", "test"]], "MEDfl.NetManager": [[4, 0, 0, "-", "dataset"], [4, 0, 0, "-", "flsetup"], [4, 0, 0, "-", "net_helper"], [4, 0, 0, "-", "net_manager_queries"], [4, 0, 0, "-", "network"], [4, 0, 0, "-", "node"]], "MEDfl.NetManager.dataset": [[4, 1, 1, "", "DataSet"]], "MEDfl.NetManager.dataset.DataSet": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "delete_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "update_data"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.flsetup": [[4, 1, 1, "", "FLsetup"]], "MEDfl.NetManager.flsetup.FLsetup": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create"], [4, 2, 1, "", "create_dataloader_from_node"], [4, 2, 1, "", "create_federated_dataset"], [4, 2, 1, "", "create_nodes_from_master_dataset"], [4, 2, 1, "", "delete"], [4, 2, 1, "", "get_flDataSet"], [4, 2, 1, "", "list_allsetups"], [4, 2, 1, "", "read_setup"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.net_helper": [[4, 4, 1, "", "get_feddataset_id_from_name"], [4, 4, 1, "", "get_flpipeline_from_name"], [4, 4, 1, "", "get_flsetupid_from_name"], [4, 4, 1, "", "get_netid_from_name"], [4, 4, 1, "", "get_nodeid_from_name"], [4, 4, 1, "", "is_str"], [4, 4, 1, "", "master_table_exists"], [4, 4, 1, "", "process_data_after_reading"], [4, 4, 1, "", "process_eicu"]], "MEDfl.NetManager.network": [[4, 1, 1, "", "Network"]], "MEDfl.NetManager.network.Network": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "add_node"], [4, 2, 1, "", "create_master_dataset"], [4, 2, 1, "", "create_network"], [4, 2, 1, "", "delete_network"], [4, 2, 1, "", "get_netid_from_name"], [4, 2, 1, "", "list_allnetworks"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "mtable_exists"], [4, 3, 1, "", "name"], [4, 2, 1, "", "update_network"], [4, 2, 1, "", "use_network"], [4, 2, 1, "", "validate"]], "MEDfl.NetManager.node": [[4, 1, 1, "", "Node"]], "MEDfl.NetManager.node.Node": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "assign_dataset"], [4, 2, 1, "", "check_dataset_compatibility"], [4, 2, 1, "", "create_node"], [4, 2, 1, "", "delete_node"], [4, 2, 1, "", "get_dataset"], [4, 2, 1, "", "list_alldatasets"], [4, 2, 1, "", "list_allnodes"], [4, 3, 1, "", "name"], [4, 3, 1, "", "test_fraction"], [4, 3, 1, "", "train"], [4, 2, 1, "", "unassign_dataset"], [4, 2, 1, "", "update_node"], [4, 2, 1, "", "upload_dataset"], [4, 2, 1, "", "validate"]], "MEDfl.rw": [[5, 0, 0, "-", "client"], [5, 0, 0, "-", "model"], [5, 0, 0, "-", "server"], [5, 0, 0, "-", "strategy"]], "MEDfl.rw.client": [[5, 1, 1, "", "DPConfig"], [5, 1, 1, "", "FlowerClient"]], "MEDfl.rw.client.DPConfig": [[5, 3, 1, "", "batch_size"], [5, 3, 1, "", "max_grad_norm"], [5, 3, 1, "", "noise_multiplier"], [5, 3, 1, "", "secure_rng"]], "MEDfl.rw.client.FlowerClient": [[5, 2, 1, "", "_lazy_init_from_server_config"], [5, 2, 1, "", "evaluate"], [5, 2, 1, "", "fit"], [5, 2, 1, "", "get_parameters"], [5, 2, 1, "", "get_properties"], [5, 2, 1, "", "set_parameters"], [5, 2, 1, "", "start"]], "MEDfl.rw.model": [[5, 1, 1, "", "Net"]], "MEDfl.rw.model.Net": [[5, 2, 1, "", "forward"], [5, 2, 1, "", "predict"]], "MEDfl.rw.server": [[5, 1, 1, "", "FederatedServer"], [5, 1, 1, "", "TrackingClientManager"]], "MEDfl.rw.server.FederatedServer": [[5, 2, 1, "", "__init__"], [5, 3, 1, "", "certificates"], [5, 3, 1, "", "connected_clients"], [5, 3, 1, "", "server_address"], [5, 3, 1, "", "server_config"], [5, 2, 1, "id0", "start"], [5, 3, 1, "", "strategy"], [5, 3, 1, "", "strategy_wrapper"]], "MEDfl.rw.server.TrackingClientManager": [[5, 2, 1, "", "__init__"], [5, 2, 1, "", "_fetch_and_log_hostname"], [5, 3, 1, "", "client_properties"], [5, 2, 1, "", "register"], [5, 3, 1, "", "server"]], "MEDfl.rw.strategy": [[5, 1, 1, "", "Strategy"], [5, 4, 1, "", "aggregate_eval_metrics"], [5, 4, 1, "", "aggregate_fit_metrics"]], "MEDfl.rw.strategy.Strategy": [[5, 2, 1, "", "create_strategy"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "data", "Python data"]}, "titleterms": {"document": [0, 7], "instal": [1, 9], "python": 1, "requir": 1, "packag": [1, 2, 3, 4, 5], "For": 1, "user": 1, "contributor": 1, "databas": [1, 10, 11], "configur": [1, 6, 9, 11], "medfl": [2, 3, 4, 5, 7, 8, 9, 11], "subpackag": 2, "modul": [2, 3, 4], "content": [2, 3, 4, 7], "learningmanag": 3, "submodul": [3, 4, 5], "client": [3, 9], "dynamicmod": 3, "federated_dataset": 3, "flpipelin": 3, "model": [3, 10, 11], "plot": [3, 11], "server": [3, 9, 11], "strategi": [3, 11], "util": 3, "netmanag": [4, 10, 11], "dataset": [4, 6, 11], "flsetup": [4, 11], "net_help": 4, "net_manager_queri": 4, "network": [4, 9, 11], "node": [4, 11], "rw": 5, "file": 6, "project": 6, "base": 6, "url": 6, "mysql": 6, "learn": [6, 9, 10, 11], "paramet": [6, 9], "welcom": 7, "get": 7, "start": 7, "simul": [7, 11], "mode": 7, "tutori": [7, 9, 11], "real": [7, 9, 10, 11], "world": [7, 9, 10, 11], "api": 7, "refer": 7, "indic": 7, "tabl": 7, "connect": 9, "behind": 9, "privat": 9, "us": 9, "tailscal": 9, "why": 9, "prerequisit": [9, 11], "creat": 9, "account": 9, "each": 9, "machin": 9, "ad": 9, "tailnet": 9, "ip": 9, "address": 9, "secur": 9, "consider": 9, "summari": 9, "feder": [9, 11], "high": 9, "level": 9, "architectur": 9, "1": [9, 11], "prepar": 9, "data": 9, "2": [9, 11], "kei": 9, "3": [9, 11], "4": [9, 11], "enabl": 9, "differenti": 9, "privaci": 9, "option": 9, "5": [9, 11], "run": 9, "experi": 9, "6": [9, 11], "custom": 9, "split": 9, "per": 9, "7": [9, 11], "introduct": 10, "scenario": 10, "manag": 10, "transfer": 10, "result": [10, 11], "test": [10, 11], "phase": 10, "choic": 10, "titl": 10, "complet": 11, "motiv": 11, "0": 11, "environ": 11, "import": 11, "creation": 11, "setup": 11, "upload": 11, "definit": 11, "dynamicmodel": 11, "8": 11, "aggreg": 11, "9": 11, "10": 11, "fl": 11, "pipelin": 11, "train": 11, "11": 11, "accuraci": 11, "loss": 11, "12": 11, "automat": 11, "storag": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Documentation": [[0, "documentation"]], "Installation": [[1, "installation"]], "Python Requirements": [[1, "python-requirements"]], "Package Installation (For Users)": [[1, "package-installation-for-users"]], "Package Installation (For Contributors)": [[1, "package-installation-for-contributors"]], "Database Configuration": [[1, "database-configuration"]], "MEDfl package": [[2, "medfl-package"]], "Subpackages": [[2, "subpackages"]], "Module contents": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [4, "module-MEDfl.NetManager"]], "MEDfl.LearningManager package": [[3, "medfl-learningmanager-package"]], "Submodules": [[3, "submodules"], [4, "submodules"], [5, "module-MEDfl.rw.client"]], "MEDfl.LearningManager.client module": [[3, "module-MEDfl.LearningManager.client"]], "MEDfl.LearningManager.dynamicModal module": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "MEDfl.LearningManager.federated_dataset module": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "MEDfl.LearningManager.flpipeline module": [[3, "module-MEDfl.LearningManager.flpipeline"]], "MEDfl.LearningManager.model module": [[3, "module-MEDfl.LearningManager.model"]], "MEDfl.LearningManager.plot module": [[3, "module-MEDfl.LearningManager.plot"]], "MEDfl.LearningManager.server module": [[3, "module-MEDfl.LearningManager.server"]], "MEDfl.LearningManager.strategy module": [[3, "module-MEDfl.LearningManager.strategy"]], "MEDfl.LearningManager.utils module": [[3, "module-MEDfl.LearningManager.utils"]], "MEDfl.NetManager package": [[4, "medfl-netmanager-package"]], "MEDfl.NetManager.dataset module": [[4, "module-MEDfl.NetManager.dataset"]], "MEDfl.NetManager.flsetup module": [[4, "module-MEDfl.NetManager.flsetup"]], "MEDfl.NetManager.net_helper module": [[4, "module-MEDfl.NetManager.net_helper"]], "MEDfl.NetManager.net_manager_queries module": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "MEDfl.NetManager.network module": [[4, "module-MEDfl.NetManager.network"]], "MEDfl.NetManager.node module": [[4, "module-MEDfl.NetManager.node"]], "MEDfl.rw package": [[5, "module-MEDfl.rw"]], "Configuration File": [[6, "configuration-file"]], "Project base url": [[6, "project-base-url"]], "MySQL Configuration": [[6, "mysql-configuration"]], "Learning Parameters": [[6, "learning-parameters"]], "DataSets": [[6, "datasets"]], "Welcome to the MEDfl Documentation": [[7, "welcome-to-the-medfl-documentation"]], "Getting Started": [[7, null]], "Simulation Mode": [[7, "simulation-mode"]], "Simulation Tutorials": [[7, null]], "Real-World Mode": [[7, "real-world-mode"]], "\ud83c\udf0d Real-World Tutorials": [[7, null]], "API Reference": [[7, "api-reference"]], "Contents": [[7, null]], "Indices and Tables": [[7, "indices-and-tables"]], "MEDfl": [[8, "medfl"]], "Connecting Clients Behind Private Networks Using Tailscale": [[9, "connecting-clients-behind-private-networks-using-tailscale"]], "Why Tailscale?": [[9, "why-tailscale"]], "Prerequisites": [[9, "prerequisites"]], "Creating a Tailscale Account": [[9, "creating-a-tailscale-account"]], "Installing Tailscale on Each Machine": [[9, "installing-tailscale-on-each-machine"]], "Adding Machines to the Tailnet": [[9, "adding-machines-to-the-tailnet"]], "Using Tailscale IP Addresses in MEDfl": [[9, "using-tailscale-ip-addresses-in-medfl"]], "Security Considerations": [[9, "security-considerations"]], "Summary": [[9, "summary"]], "Real-world Federated Learning Tutorial": [[9, "real-world-federated-learning-tutorial"]], "High-level architecture": [[9, "high-level-architecture"]], "1. Preparing client data": [[9, "preparing-client-data"]], "2. Server configuration": [[9, "server-configuration"]], "Key parameters": [[9, "key-parameters"]], "3. Client configuration": [[9, "client-configuration"]], "4. Enabling Differential Privacy (optional)": [[9, "enabling-differential-privacy-optional"]], "5. Running the experiment": [[9, "running-the-experiment"]], "6. Customizing splits per client": [[9, "customizing-splits-per-client"]], "7. Summary": [[9, "id1"]], "Introduction": [[10, "introduction"]], "Real world scenario": [[10, "real-world-scenario"]], "Database management": [[10, "database-management"]], "NetManager": [[10, "netmanager"]], "Transfer Learning": [[10, "transfer-learning"]], "Learning Manager": [[10, "learning-manager"]], "Learning Results": [[10, "learning-results"]], "Test Phases": [[10, "id2"]], "Model choice": [[10, "model-choice"]], "Title": [[10, "id3"]], "MEDfl Complete Tutorial (Simulation)": [[11, "medfl-complete-tutorial-simulation"]], "Real-world motivation": [[11, "real-world-motivation"]], "0. Prerequisites": [[11, "prerequisites"]], "1. Environment and imports": [[11, "environment-and-imports"]], "2. Database configuration": [[11, "database-configuration"]], "3. Network creation (NetManager)": [[11, "network-creation-netmanager"]], "4. Federated Learning setup (FLsetup)": [[11, "federated-learning-setup-flsetup"]], "5. Node creation and dataset upload": [[11, "node-creation-and-dataset-upload"]], "6. Federated dataset creation": [[11, "federated-dataset-creation"]], "7. Model definition (DynamicModel)": [[11, "model-definition-dynamicmodel"]], "8. Aggregation strategy": [[11, "aggregation-strategy"]], "9. Federated learning server": [[11, "federated-learning-server"]], "10. FL pipeline creation and training": [[11, "fl-pipeline-creation-and-training"]], "11. Plotting accuracy and loss": [[11, "plotting-accuracy-and-loss"]], "12. Automatic testing and result storage": [[11, "automatic-testing-and-result-storage"]]}, "indexentries": {"medfl": [[2, "module-MEDfl"]], "module": [[2, "module-MEDfl"], [3, "module-MEDfl.LearningManager"], [3, "module-MEDfl.LearningManager.client"], [3, "module-MEDfl.LearningManager.dynamicModal"], [3, "module-MEDfl.LearningManager.federated_dataset"], [3, "module-MEDfl.LearningManager.flpipeline"], [3, "module-MEDfl.LearningManager.model"], [3, "module-MEDfl.LearningManager.plot"], [3, "module-MEDfl.LearningManager.server"], [3, "module-MEDfl.LearningManager.strategy"], [3, "module-MEDfl.LearningManager.utils"], [4, "module-MEDfl.NetManager"], [4, "module-MEDfl.NetManager.dataset"], [4, "module-MEDfl.NetManager.flsetup"], [4, "module-MEDfl.NetManager.net_helper"], [4, "module-MEDfl.NetManager.net_manager_queries"], [4, "module-MEDfl.NetManager.network"], [4, "module-MEDfl.NetManager.node"], [5, "module-MEDfl.rw"], [5, "module-MEDfl.rw.client"], [5, "module-MEDfl.rw.model"], [5, "module-MEDfl.rw.server"], [5, "module-MEDfl.rw.strategy"]], "accuracylossplotter (class in medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter"]], "dynamicmodel (class in medfl.learningmanager.dynamicmodal)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel"]], "flpipeline (class in medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline"]], "federateddataset (class in medfl.learningmanager.federated_dataset)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset"]], "flowerclient (class in medfl.learningmanager.client)": [[3, "MEDfl.LearningManager.client.FlowerClient"]], "flowerserver (class in medfl.learningmanager.server)": [[3, "MEDfl.LearningManager.server.FlowerServer"]], "medfl.learningmanager": [[3, "module-MEDfl.LearningManager"]], "medfl.learningmanager.client": [[3, "module-MEDfl.LearningManager.client"]], "medfl.learningmanager.dynamicmodal": [[3, "module-MEDfl.LearningManager.dynamicModal"]], "medfl.learningmanager.federated_dataset": [[3, "module-MEDfl.LearningManager.federated_dataset"]], "medfl.learningmanager.flpipeline": [[3, "module-MEDfl.LearningManager.flpipeline"]], "medfl.learningmanager.model": [[3, "module-MEDfl.LearningManager.model"]], "medfl.learningmanager.plot": [[3, "module-MEDfl.LearningManager.plot"]], "medfl.learningmanager.server": [[3, "module-MEDfl.LearningManager.server"]], "medfl.learningmanager.strategy": [[3, "module-MEDfl.LearningManager.strategy"]], "medfl.learningmanager.utils": [[3, "module-MEDfl.LearningManager.utils"]], "model (class in medfl.learningmanager.model)": [[3, "MEDfl.LearningManager.model.Model"]], "strategy (class in medfl.learningmanager.strategy)": [[3, "MEDfl.LearningManager.strategy.Strategy"]], "__init__() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.__init__"]], "__init__() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.__init__"]], "__init__() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.__init__"]], "__init__() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.__init__"]], "__init__() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.__init__"]], "__init__() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.__init__"]], "accuracies (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.accuracies"]], "auto_test() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.auto_test"]], "cid (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.cid"]], "client_fn() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.client_fn"]], "create() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.create"]], "create() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.create"]], "create_medfl_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.create_MEDfl_db"]], "create_binary_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_binary_classifier"]], "create_convolutional_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_convolutional_neural_network"]], "create_linear_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_linear_regressor"]], "create_logistic_regressor() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_logistic_regressor"]], "create_lstm_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_lstm_network"]], "create_model() (medfl.learningmanager.dynamicmodal.dynamicmodel method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_model"]], "create_multiclass_classifier() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_multiclass_classifier"]], "create_query() (in module medfl.learningmanager.flpipeline)": [[3, "MEDfl.LearningManager.flpipeline.create_query"]], "create_recurrent_neural_network() (medfl.learningmanager.dynamicmodal.dynamicmodel static method)": [[3, "MEDfl.LearningManager.dynamicModal.DynamicModel.create_recurrent_neural_network"]], "create_strategy() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.create_strategy"]], "criterion (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.criterion"]], "custom_classification_report() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.custom_classification_report"]], "delete() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.delete"]], "description (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.description"]], "diff_priv (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.diff_priv"]], "diff_priv (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.diff_priv"]], "empty_db() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.empty_db"]], "evaluate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.evaluate"]], "evaluate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.evaluate"]], "evaluate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.evaluate"]], "fed_dataset (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.fed_dataset"]], "fit() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.fit"]], "flower_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.flower_clients"]], "fraction_evaluate (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_evaluate"]], "fraction_fit (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.fraction_fit"]], "get_node_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_node_confusion_matrix"]], "get_parameters() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.get_parameters"]], "get_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.get_parameters"]], "get_pipeline_confusion_matrix() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_confusion_matrix"]], "get_pipeline_from_name() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_from_name"]], "get_pipeline_result() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.get_pipeline_result"]], "get_strategy_by_name() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.get_strategy_by_name"]], "global_model (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.global_model"]], "initial_parameters (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.initial_parameters"]], "iterations (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.iterations"]], "load_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config"]], "load_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.load_db_config_dep"]], "load_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.load_model"]], "local_model (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.local_model"]], "losses (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.losses"]], "metrics (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.metrics"]], "min_available_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_available_clients"]], "min_evaluate_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_evaluate_clients"]], "min_fit_clients (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.min_fit_clients"]], "model (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.model"]], "name (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.name"]], "name (medfl.learningmanager.strategy.strategy attribute)": [[3, "MEDfl.LearningManager.strategy.Strategy.name"]], "num_clients (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_clients"]], "num_rounds (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.num_rounds"]], "optimizer (medfl.learningmanager.model.model attribute)": [[3, "MEDfl.LearningManager.model.Model.optimizer"]], "optuna_fed_optimization() (medfl.learningmanager.strategy.strategy method)": [[3, "MEDfl.LearningManager.strategy.Strategy.optuna_fed_optimization"]], "parameters (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.parameters"]], "plot_accuracy_loss() (medfl.learningmanager.plot.accuracylossplotter method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_accuracy_loss"]], "plot_classification_report() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_classification_report"]], "plot_confusion_matrix_by_node() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_confusion_Matrix_by_node"]], "plot_global_confusion_matrix() (medfl.learningmanager.plot.accuracylossplotter static method)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.plot_global_confusion_matrix"]], "results_dict (medfl.learningmanager.plot.accuracylossplotter attribute)": [[3, "MEDfl.LearningManager.plot.AccuracyLossPlotter.results_dict"]], "results_dict (in module medfl.learningmanager.plot)": [[3, "MEDfl.LearningManager.plot.results_dict"]], "run() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.run"]], "save_model() (medfl.learningmanager.model.model static method)": [[3, "MEDfl.LearningManager.model.Model.save_model"]], "server (medfl.learningmanager.flpipeline.flpipeline attribute)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.server"]], "set_db_config() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config"]], "set_db_config_dep() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.set_db_config_dep"]], "set_parameters() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.set_parameters"]], "strategy (medfl.learningmanager.server.flowerserver attribute)": [[3, "MEDfl.LearningManager.server.FlowerServer.strategy"]], "test() (in module medfl.learningmanager.utils)": [[3, "MEDfl.LearningManager.utils.test"]], "test_by_node() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.test_by_node"]], "train() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.train"]], "trainloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.trainloader"]], "update() (medfl.learningmanager.federated_dataset.federateddataset method)": [[3, "MEDfl.LearningManager.federated_dataset.FederatedDataset.update"]], "validate() (medfl.learningmanager.client.flowerclient method)": [[3, "MEDfl.LearningManager.client.FlowerClient.validate"]], "validate() (medfl.learningmanager.flpipeline.flpipeline method)": [[3, "MEDfl.LearningManager.flpipeline.FLpipeline.validate"]], "validate() (medfl.learningmanager.model.model method)": [[3, "MEDfl.LearningManager.model.Model.validate"]], "validate() (medfl.learningmanager.server.flowerserver method)": [[3, "MEDfl.LearningManager.server.FlowerServer.validate"]], "valloader (medfl.learningmanager.client.flowerclient attribute)": [[3, "MEDfl.LearningManager.client.FlowerClient.valloader"]], "dataset (class in medfl.netmanager.dataset)": [[4, "MEDfl.NetManager.dataset.DataSet"]], "flsetup (class in medfl.netmanager.flsetup)": [[4, "MEDfl.NetManager.flsetup.FLsetup"]], "medfl.netmanager": [[4, "module-MEDfl.NetManager"]], "medfl.netmanager.dataset": [[4, "module-MEDfl.NetManager.dataset"]], "medfl.netmanager.flsetup": [[4, "module-MEDfl.NetManager.flsetup"]], "medfl.netmanager.net_helper": [[4, "module-MEDfl.NetManager.net_helper"]], "medfl.netmanager.net_manager_queries": [[4, "module-MEDfl.NetManager.net_manager_queries"]], "medfl.netmanager.network": [[4, "module-MEDfl.NetManager.network"]], "medfl.netmanager.node": [[4, "module-MEDfl.NetManager.node"]], "network (class in medfl.netmanager.network)": [[4, "MEDfl.NetManager.network.Network"]], "node (class in medfl.netmanager.node)": [[4, "MEDfl.NetManager.node.Node"]], "__init__() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.__init__"]], "__init__() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.__init__"]], "__init__() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.__init__"]], "__init__() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.__init__"]], "add_node() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.add_node"]], "assign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.assign_dataset"]], "check_dataset_compatibility() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.check_dataset_compatibility"]], "create() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create"]], "create_dataloader_from_node() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_dataloader_from_node"]], "create_federated_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_federated_dataset"]], "create_master_dataset() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_master_dataset"]], "create_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.create_network"]], "create_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.create_node"]], "create_nodes_from_master_dataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.create_nodes_from_master_dataset"]], "delete() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.delete"]], "delete_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.delete_dataset"]], "delete_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.delete_network"]], "delete_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.delete_node"]], "get_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.get_dataset"]], "get_feddataset_id_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_feddataset_id_from_name"]], "get_fldataset() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.get_flDataSet"]], "get_flpipeline_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flpipeline_from_name"]], "get_flsetupid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_flsetupid_from_name"]], "get_netid_from_name() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.get_netid_from_name"]], "get_netid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_netid_from_name"]], "get_nodeid_from_name() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.get_nodeid_from_name"]], "is_str() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.is_str"]], "list_alldatasets() (medfl.netmanager.dataset.dataset static method)": [[4, "MEDfl.NetManager.dataset.DataSet.list_alldatasets"]], "list_alldatasets() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.list_alldatasets"]], "list_allnetworks() (medfl.netmanager.network.network static method)": [[4, "MEDfl.NetManager.network.Network.list_allnetworks"]], "list_allnodes() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.list_allnodes"]], "list_allnodes() (medfl.netmanager.node.node static method)": [[4, "MEDfl.NetManager.node.Node.list_allnodes"]], "list_allsetups() (medfl.netmanager.flsetup.flsetup static method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.list_allsetups"]], "master_table_exists() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.master_table_exists"]], "mtable_exists (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.mtable_exists"]], "name (medfl.netmanager.network.network attribute)": [[4, "MEDfl.NetManager.network.Network.name"]], "name (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.name"]], "process_data_after_reading() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_data_after_reading"]], "process_eicu() (in module medfl.netmanager.net_helper)": [[4, "MEDfl.NetManager.net_helper.process_eicu"]], "read_setup() (medfl.netmanager.flsetup.flsetup class method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.read_setup"]], "test_fraction (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.test_fraction"]], "train (medfl.netmanager.node.node attribute)": [[4, "MEDfl.NetManager.node.Node.train"]], "unassign_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.unassign_dataset"]], "update_data() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.update_data"]], "update_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.update_network"]], "update_node() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.update_node"]], "upload_dataset() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.upload_dataset"]], "upload_dataset() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.upload_dataset"]], "use_network() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.use_network"]], "validate() (medfl.netmanager.dataset.dataset method)": [[4, "MEDfl.NetManager.dataset.DataSet.validate"]], "validate() (medfl.netmanager.flsetup.flsetup method)": [[4, "MEDfl.NetManager.flsetup.FLsetup.validate"]], "validate() (medfl.netmanager.network.network method)": [[4, "MEDfl.NetManager.network.Network.validate"]], "validate() (medfl.netmanager.node.node method)": [[4, "MEDfl.NetManager.node.Node.validate"]], "dpconfig (class in medfl.rw.client)": [[5, "MEDfl.rw.client.DPConfig"]], "federatedserver (class in medfl.rw.server)": [[5, "MEDfl.rw.server.FederatedServer"]], "flowerclient (class in medfl.rw.client)": [[5, "MEDfl.rw.client.FlowerClient"]], "medfl.rw": [[5, "module-MEDfl.rw"]], "medfl.rw.client": [[5, "module-MEDfl.rw.client"]], "medfl.rw.model": [[5, "module-MEDfl.rw.model"]], "medfl.rw.server": [[5, "module-MEDfl.rw.server"]], "medfl.rw.strategy": [[5, "module-MEDfl.rw.strategy"]], "net (class in medfl.rw.model)": [[5, "MEDfl.rw.model.Net"]], "strategy (class in medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.Strategy"]], "trackingclientmanager (class in medfl.rw.server)": [[5, "MEDfl.rw.server.TrackingClientManager"]], "__init__() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.__init__"]], "__init__() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.__init__"]], "_fetch_and_log_hostname() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager._fetch_and_log_hostname"]], "_lazy_init_from_server_config() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient._lazy_init_from_server_config"]], "aggregate_eval_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_eval_metrics"]], "aggregate_fit_metrics() (in module medfl.rw.strategy)": [[5, "MEDfl.rw.strategy.aggregate_fit_metrics"]], "batch_size (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.batch_size"]], "certificates (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.certificates"]], "client_properties (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.client_properties"]], "connected_clients (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.connected_clients"]], "create_strategy() (medfl.rw.strategy.strategy method)": [[5, "MEDfl.rw.strategy.Strategy.create_strategy"]], "evaluate() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.evaluate"]], "fit() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.fit"]], "forward() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.forward"]], "get_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_parameters"]], "get_properties() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.get_properties"]], "max_grad_norm (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.max_grad_norm"]], "noise_multiplier (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.noise_multiplier"]], "predict() (medfl.rw.model.net method)": [[5, "MEDfl.rw.model.Net.predict"]], "register() (medfl.rw.server.trackingclientmanager method)": [[5, "MEDfl.rw.server.TrackingClientManager.register"]], "secure_rng (medfl.rw.client.dpconfig attribute)": [[5, "MEDfl.rw.client.DPConfig.secure_rng"]], "server (medfl.rw.server.trackingclientmanager attribute)": [[5, "MEDfl.rw.server.TrackingClientManager.server"]], "server_address (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_address"]], "server_config (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.server_config"]], "set_parameters() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.set_parameters"]], "start() (medfl.rw.client.flowerclient method)": [[5, "MEDfl.rw.client.FlowerClient.start"]], "start() (medfl.rw.server.federatedserver method)": [[5, "MEDfl.rw.server.FederatedServer.start"], [5, "id0"]], "strategy (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy"]], "strategy_wrapper (medfl.rw.server.federatedserver attribute)": [[5, "MEDfl.rw.server.FederatedServer.strategy_wrapper"]]}})
\ No newline at end of file
diff --git a/docs/_build/html/simulation_tutorials.html b/docs/_build/html/simulation_tutorials.html
index 3447744..62a8385 100644
--- a/docs/_build/html/simulation_tutorials.html
+++ b/docs/_build/html/simulation_tutorials.html
@@ -73,7 +73,8 @@
π Real-World Tutorials
-
-
- Real-world Federated Learning Tutorial +
- Connecting Clients Behind Private Networks Using Tailscale +
- Real-world Federated Learning Tutorial
Contents
-
@@ -120,15 +121,8 @@
Real world scenario
Database managementο
-In this tutorial, weβll demonstrate how to initialize your database and establish its connection to MEDfl. Subsequently, weβll explore the step-by-step process of storing various pieces of information.
-Our choice for utilizing MySQL as the database system is due to its robust features, reliability, and widespread adoption in the industry. Its strong support for structured query language (SQL) and its scalability make it an ideal choice for managing the diverse data sets and configurations within MEDfl.
-
-
Before beginning, ensure that you have installed MySQL and one of the servers, such as WAMP or XAMPP , and have them running.
-To visualize your database, you can open PHPMyAdmin <https://www.phpmyadmin.net>, a web-based tool that allows for convenient management and visualization of your database.
-
-
-
-You can also find this tutorial on the repository Database management tutorial
+MEDfl uses SQLite as its default database engine. +SQLite requires no setup and no configuration β it works automatically using a local .db file generated by MEDfl.
NetManagerο
diff --git a/docs/_build/html/simulation_tutorials_complete.html b/docs/_build/html/simulation_tutorials_complete.html index d595981..f391d67 100644 --- a/docs/_build/html/simulation_tutorials_complete.html +++ b/docs/_build/html/simulation_tutorials_complete.html @@ -28,7 +28,7 @@ - + @@ -86,7 +86,8 @@π Real-World Tutorials
-
-
- Real-world Federated Learning Tutorial +
- Connecting Clients Behind Private Networks Using Tailscale +
- Real-world Federated Learning Tutorial
Contents