diff --git a/bayesflow/approximators/continuous_approximator.py b/bayesflow/approximators/continuous_approximator.py index 5c389b329..5ad856ddf 100644 --- a/bayesflow/approximators/continuous_approximator.py +++ b/bayesflow/approximators/continuous_approximator.py @@ -140,6 +140,8 @@ def sample( **kwargs, ) -> dict[str, np.ndarray]: conditions = self.adapter(conditions, strict=False, stage="inference", **kwargs) + # at inference time, inference_variables are estimated by the networks and thus ignored in conditions + conditions.pop("inference_variables", None) conditions = keras.tree.map_structure(keras.ops.convert_to_tensor, conditions) conditions = {"inference_variables": self._sample(num_samples=num_samples, **conditions, **kwargs)} conditions = keras.tree.map_structure(keras.ops.convert_to_numpy, conditions) diff --git a/bayesflow/approximators/model_comparison_approximator.py b/bayesflow/approximators/model_comparison_approximator.py index 6e37a843e..8c42e3cc6 100644 --- a/bayesflow/approximators/model_comparison_approximator.py +++ b/bayesflow/approximators/model_comparison_approximator.py @@ -208,6 +208,8 @@ def predict( **kwargs, ) -> np.ndarray: conditions = self.adapter(conditions, strict=False, stage="inference", **kwargs) + # at inference time, model_indices are predicted by the networks and thus ignored in conditions + conditions.pop("model_indices", None) conditions = keras.tree.map_structure(keras.ops.convert_to_tensor, conditions) output = self._predict(**conditions, **kwargs)