diff --git a/bayesflow/experimental/backend_approximators/base_approximator.py b/bayesflow/experimental/backend_approximators/base_approximator.py index 295d8997..a095d115 100644 --- a/bayesflow/experimental/backend_approximators/base_approximator.py +++ b/bayesflow/experimental/backend_approximators/base_approximator.py @@ -44,6 +44,10 @@ def evaluate(self, *args, **kwargs): # noinspection PyMethodOverriding def compute_metrics(self, data: dict[str, Tensor], stage: str = "training") -> dict[str, Tensor]: + # compiled modes do not allow in-place operations on the data object + # we perform a shallow copy here, which is cheap + data = data.copy() + if self.summary_network is None: data["inference_variables"] = self.configurator.configure_inference_variables(data) data["inference_conditions"] = self.configurator.configure_inference_conditions(data)