nebula.core.network.propagator#

Classes#

PropagationStrategy

Helper class that provides a standard way to create an ABC using

InitialModelPropagation

Helper class that provides a standard way to create an ABC using

StableModelPropagation

Helper class that provides a standard way to create an ABC using

Propagator

Module Contents#

class nebula.core.network.propagator.PropagationStrategy#

Bases: abc.ABC

Helper class that provides a standard way to create an ABC using inheritance.

abstract is_node_eligible(node)#
Parameters:

node (str)

Return type:

bool

abstract prepare_model_payload(node)#
Parameters:

node (str)

Return type:

Optional[Tuple[Any, List[str], float]]

class nebula.core.network.propagator.InitialModelPropagation(aggregator, trainer, engine)#

Bases: PropagationStrategy

Helper class that provides a standard way to create an ABC using inheritance.

Parameters:
aggregator#
trainer#
engine#
get_round()#
is_node_eligible(node)#
Parameters:

node (str)

Return type:

bool

prepare_model_payload(node)#
Parameters:

node (str)

Return type:

Optional[Tuple[Any, List[str], float]]

class nebula.core.network.propagator.StableModelPropagation(aggregator, trainer, engine)#

Bases: PropagationStrategy

Helper class that provides a standard way to create an ABC using inheritance.

Parameters:
aggregator#
trainer#
engine#
addr#
get_round()#
is_node_eligible(node)#
Parameters:

node (str)

Return type:

bool

prepare_model_payload(node)#
Parameters:

node (str)

Return type:

Optional[Tuple[Any, List[str], float]]

class nebula.core.network.propagator.Propagator(cm)#
Parameters:

cm (nebula.core.network.communications.CommunicationsManager)

engine: nebula.core.engine.Engine#
config: nebula.config.config.Config#
addr#
cm: nebula.core.network.communications.CommunicationsManager#
aggregator: nebula.core.aggregation.aggregator.Aggregator#
trainer: nebula.core.training.lightning.Lightning#
status_history#
interval#
model_interval#
early_stop#
stable_rounds_count = 0#
strategies#
start()#
get_round()#
update_and_check_neighbors(strategy, eligible_neighbors)#
reset_status_history()#
async propagate(strategy_id)#
Parameters:

strategy_id (str)