lib.sedna.core.federated_learning

Submodules

Package Contents

Classes

FederatedLearning

Federated learning enables multiple actors to build a common, robust

FederatedLearningV2

class lib.sedna.core.federated_learning.FederatedLearning(estimator, aggregation='FedAvg')[source]

Bases: sedna.core.base.JobBase

Federated learning enables multiple actors to build a common, robust machine learning model without sharing data, thus allowing to address critical issues such as data privacy, data security, data access rights and access to heterogeneous data.

Sedna provide the related interfaces for application development.

Parameters:
  • estimator (Instance) – An instance with the high-level API that greatly simplifies machine learning programming. Estimators encapsulate training, evaluation, prediction, and exporting for your model.

  • aggregation (str) – aggregation algo which has registered to ClassFactory, see sedna.algorithms.aggregation for more detail.

Examples

>>> Estimator = keras.models.Sequential()
>>> fl_model = FederatedLearning(
        estimator=Estimator,
        aggregation="FedAvg"
    )
register(timeout=300)[source]

Deprecated, Client proactively subscribes to the aggregation service.

Parameters:

timeout (int, connect timeout. Default: 300) –

train(train_data, valid_data=None, post_process=None, **kwargs)[source]

Training task for FederatedLearning

Parameters:
  • train_data (BaseDataSource) – datasource use for train, see sedna.datasources.BaseDataSource for more detail.

  • valid_data (BaseDataSource) – datasource use for evaluation, see sedna.datasources.BaseDataSource for more detail.

  • post_process (function or a registered method) – effected after estimator training.

  • kwargs (Dict) – parameters for estimator training, Like: early_stopping_rounds in Xgboost.XGBClassifier

class lib.sedna.core.federated_learning.FederatedLearningV2(data=None, estimator=None, aggregation=None, transmitter=None)[source]
classmethod get_transmitter_from_config()[source]
train()[source]