Skip to content

Commit 3dab0d4

Browse files
committed
use 'local' as key for optimizer
1 parent 6af7fdc commit 3dab0d4

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

fl4health/clients/nnunet_client.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def train_step(self, input: TorchInputType, target: TorchTargetType) -> tuple[Tr
228228

229229
# As in the nnUNetTrainer, we implement mixed precision using torch.autocast and torch.GradScaler
230230
# Clear gradients from optimizer if they exist
231-
self.optimizers["global"].zero_grad()
231+
self.optimizers["local"].zero_grad()
232232

233233
# Call user defined methods to get predictions and compute loss
234234
preds, features = self.predict(input)
@@ -240,11 +240,11 @@ def train_step(self, input: TorchInputType, target: TorchTargetType) -> tuple[Tr
240240
scaled_backward_loss.backward()
241241

242242
# Rescale gradients then clip based on specified norm
243-
self.grad_scaler.unscale_(self.optimizers["global"])
243+
self.grad_scaler.unscale_(self.optimizers["local"])
244244
self.transform_gradients(losses)
245245

246246
# Update parameters and scaler
247-
self.grad_scaler.step(self.optimizers["global"])
247+
self.grad_scaler.step(self.optimizers["local"])
248248
self.grad_scaler.update()
249249

250250
return losses, preds
@@ -800,7 +800,7 @@ def get_client_specific_logs(
800800
logging_mode: LoggingMode,
801801
) -> tuple[str, list[tuple[LogLevel, str]]]:
802802
if logging_mode == LoggingMode.TRAIN:
803-
lr = float(self.optimizers["global"].param_groups[0]["lr"])
803+
lr = float(self.optimizers["local"].param_groups[0]["lr"])
804804
if current_epoch is None:
805805
# Assume training by steps
806806
return f"Initial LR {lr}", []
@@ -810,7 +810,7 @@ def get_client_specific_logs(
810810
return "", []
811811

812812
def get_client_specific_reports(self) -> dict[str, Any]:
813-
return {"learning_rate": float(self.optimizers["global"].param_groups[0]["lr"])}
813+
return {"learning_rate": float(self.optimizers["local"].param_groups[0]["lr"])}
814814

815815
@use_default_signal_handlers # Experiment planner spawns a process I think
816816
def get_properties(self, config: Config) -> dict[str, Scalar]:

0 commit comments

Comments
 (0)