Source code for fl4health.parameter_exchange.packing_exchanger
from typing import Generic, TypeVar
from flwr.common.typing import NDArrays
from fl4health.parameter_exchange.full_exchanger import FullParameterExchanger
from fl4health.parameter_exchange.parameter_packer import ParameterPacker
T = TypeVar("T")
[docs]
class FullParameterExchangerWithPacking(FullParameterExchanger, Generic[T]):
def __init__(self, parameter_packer: ParameterPacker[T]) -> None:
super().__init__()
self.parameter_packer = parameter_packer
[docs]
def pack_parameters(self, model_weights: NDArrays, additional_parameters: T) -> NDArrays:
return self.parameter_packer.pack_parameters(model_weights, additional_parameters)
[docs]
def unpack_parameters(self, packed_parameters: NDArrays) -> tuple[NDArrays, T]:
return self.parameter_packer.unpack_parameters(packed_parameters)