From de62b0cc65df046e3289350be9149327681f3737 Mon Sep 17 00:00:00 2001 From: "tiffany.duneau" Date: Tue, 16 Sep 2025 18:06:56 +0100 Subject: [PATCH 1/4] bugfix: detach all tensors being returned in pytorch trainer to ensure computation graphs are fully cleared. --- lambeq/training/pytorch_trainer.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lambeq/training/pytorch_trainer.py b/lambeq/training/pytorch_trainer.py index 3d8bf100..f70e4e04 100644 --- a/lambeq/training/pytorch_trainer.py +++ b/lambeq/training/pytorch_trainer.py @@ -174,7 +174,7 @@ def validation_step( with torch.no_grad(): y_hat = self.model(x) loss = self.loss_function(y_hat, y.to(self.device)) - return y_hat, loss.item() + return y_hat.detach(), loss.detach().item() def training_step( self, @@ -196,8 +196,9 @@ def training_step( x, y = batch y_hat = self.model(x) loss = self.loss_function(y_hat, y.to(self.device)) - self.train_costs.append(loss.item()) self.optimizer.zero_grad() loss.backward() self.optimizer.step() - return y_hat, loss.item() + loss_item = loss.detach().item() + self.train_costs.append(loss_item) + return y_hat.detach(), loss_item From 939d8d6b38a9a2d6af8529206ea59eab8a8fbacc Mon Sep 17 00:00:00 2001 From: "tiffany.duneau" Date: Fri, 26 Sep 2025 14:22:33 +0100 Subject: [PATCH 2/4] deubg mypy --- lambeq/training/nelder_mead_optimizer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambeq/training/nelder_mead_optimizer.py b/lambeq/training/nelder_mead_optimizer.py index 6b2377c0..c2f78eb6 100644 --- a/lambeq/training/nelder_mead_optimizer.py +++ b/lambeq/training/nelder_mead_optimizer.py @@ -259,7 +259,7 @@ def objective(self, x: Iterable[Any], y: ArrayLike, w: ArrayLike) -> float: raise ValueError( 'Objective function must return a scalar' ) from e - return result # type: ignore[return-value] + return result def backward(self, batch: tuple[Iterable[Any], np.ndarray]) -> float: """Calculate the gradients of the loss function. From b4e7a5dc4165856235278b6018c38223a0df8840 Mon Sep 17 00:00:00 2001 From: Tiffany Duneau <37022011+DNA386@users.noreply.github.com> Date: Tue, 6 Jan 2026 13:36:50 +0000 Subject: [PATCH 3/4] Update lambeq/training/pytorch_trainer.py --- lambeq/training/pytorch_trainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambeq/training/pytorch_trainer.py b/lambeq/training/pytorch_trainer.py index f70e4e04..f2b88fc3 100644 --- a/lambeq/training/pytorch_trainer.py +++ b/lambeq/training/pytorch_trainer.py @@ -174,7 +174,7 @@ def validation_step( with torch.no_grad(): y_hat = self.model(x) loss = self.loss_function(y_hat, y.to(self.device)) - return y_hat.detach(), loss.detach().item() + return y_hat.detach(), loss.item() def training_step( self, From 507aa2aa201e7d90686d93f0b60b867f7ef78a73 Mon Sep 17 00:00:00 2001 From: Tiffany Duneau <37022011+DNA386@users.noreply.github.com> Date: Tue, 6 Jan 2026 13:36:57 +0000 Subject: [PATCH 4/4] Update lambeq/training/pytorch_trainer.py --- lambeq/training/pytorch_trainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambeq/training/pytorch_trainer.py b/lambeq/training/pytorch_trainer.py index f2b88fc3..d6562a7d 100644 --- a/lambeq/training/pytorch_trainer.py +++ b/lambeq/training/pytorch_trainer.py @@ -199,6 +199,6 @@ def training_step( self.optimizer.zero_grad() loss.backward() self.optimizer.step() - loss_item = loss.detach().item() + loss_item = loss.item() self.train_costs.append(loss_item) return y_hat.detach(), loss_item