Bases: Message
Server-emitted request to initialize local model and optimizer.
Source code in declearn/messaging/_base.py
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 | @dataclasses.dataclass
class InitRequest(Message):
"""Server-emitted request to initialize local model and optimizer."""
typekey = "init_request"
model: Model
optim: Optimizer
aggrg: Aggregator
metrics: List[MetricInputType] = dataclasses.field(default_factory=list)
dpsgd: bool = False
secagg: Optional[str] = None
def to_kwargs(self) -> Dict[str, Any]:
data = {} # type: Dict[str, Any]
data["model"] = serialize_object(self.model, group="Model").to_dict()
data["optim"] = self.optim.get_config()
data["aggrg"] = serialize_object(self.aggrg, "Aggregator").to_dict()
data["metrics"] = self.metrics
data["dpsgd"] = self.dpsgd
data["secagg"] = self.secagg
return data
@classmethod
def from_kwargs(cls, **kwargs: Any) -> Self:
kwargs["model"] = deserialize_object(kwargs["model"])
kwargs["optim"] = Optimizer.from_config(kwargs["optim"])
kwargs["aggrg"] = deserialize_object(kwargs["aggrg"])
return cls(**kwargs)
|