in scripts/old_config_converter.py [0:0]
def _handle_aggregator(trainer): # noqa
is_async_trainer = "async" in trainer["_base_"]
if "aggregator" not in trainer:
return
aggregator = trainer["aggregator"]
if "type" not in aggregator:
pass
elif "default" == aggregator["type"].lower() and not is_async_trainer:
aggregator["_base_"] = "base_fed_avg_sync_aggregator"
elif "fedavg" == aggregator["type"].lower() and not is_async_trainer:
aggregator["_base_"] = "base_fed_avg_sync_aggregator"
elif "fedavgwithlr" == aggregator["type"].lower() and not is_async_trainer:
aggregator["_base_"] = "base_fed_avg_with_lr_sync_aggregator"
elif "fedadam" == aggregator["type"].lower() and not is_async_trainer:
aggregator["_base_"] = "base_fed_adam_sync_aggregator"
elif "fedlars" == aggregator["type"].lower() and not is_async_trainer:
aggregator["_base_"] = "base_fed_lars_sync_aggregator"
elif "fedlamb" == aggregator["type"].lower() and not is_async_trainer:
aggregator["_base_"] = "base_fed_lamb_sync_aggregator"
elif "fedavgwithlr" == aggregator["type"].lower() and is_async_trainer:
aggregator["_base_"] = "base_fed_avg_with_lr_async_aggregator"
elif "fedadam" == aggregator["type"].lower() and is_async_trainer:
aggregator["_base_"] = "base_fed_adam_async_aggregator"
elif (
"asyncfedavgwithlrmithmomentum" == aggregator["type"].lower()
and is_async_trainer
):
aggregator["_base_"] = "base_fed_avg_with_lr_with_momentum_async_aggregator"
elif "hybridfedavgwithlr" == aggregator["type"].lower() and is_async_trainer:
aggregator["_base_"] = "base_fed_avg_with_lr_hybrid_aggregator"
elif "hybridfedadam" == aggregator["type"].lower() and is_async_trainer:
aggregator["_base_"] = "base_fed_adam_hybrid_aggregator"
aggregator.pop("type", None)
_handle_aggregator_reducer(aggregator)