Deep Ensembles API¶
This page documents the regression and classification ensemble wrappers in deepuq.methods.ensembles. The manual notes here explain the public variants and their tensor contracts; the generated section below contains the exact signatures and source docstrings.
Public objects¶
DeepEnsembleRegressorHeteroscedasticDeepEnsembleRegressorDeepEnsembleClassifierMultiOutputDeepEnsembleRegressorHeteroscedasticMultiOutputDeepEnsembleRegressorDeepEnsembleWrapper(backward-compatible alias ofDeepEnsembleRegressor)
Parameter and variable conventions¶
| Name | Meaning |
|---|---|
models | sequence of independently trained deterministic members |
epochs | number of optimization epochs per member in fit(...) |
optimizer_cls | optimizer factory used to train each member |
lr | member learning rate |
weight_decay | member weight decay |
device | optional training device |
seed | base seed; member i uses seed + i |
min_variance | lower bound for heteroscedastic predicted variances |
Input and output shapes¶
- ensemble members must share the same input/output contract
predict_members(...)returns a stacked tensor with leading axis[n_members, ...]- classification members must emit logits with shape
[batch, n_classes] - heteroscedastic regressors must emit mean and log-variance concatenated in a single tensor
- multi-output regressors preserve the full output shape and report per-output uncertainty
UQResult mapping¶
DeepEnsembleRegressor:mean,epistemic_var,total_varHeteroscedasticDeepEnsembleRegressor:mean,epistemic_var,aleatoric_var,total_varDeepEnsembleClassifier:mean,probs,probs_var,epistemic_varMultiOutputDeepEnsembleRegressor: same fields as plain regression, but vector-valuedHeteroscedasticMultiOutputDeepEnsembleRegressor: same fields as heteroscedastic regression, but vector-valued
Common preconditions and failure modes¶
modelsmust contain at least one member- all members must accept the same
xshape and emit the same output shape - heteroscedastic members must concatenate mean and log-variance correctly; odd channel counts raise
ValueError - classification targets are cast to integer labels inside
DeepEnsembleClassifier
Minimal example¶
ensemble = DeepEnsembleRegressor([model_a, model_b, model_c])
ensemble.fit(train_loader, epochs=50, lr=1e-3)
uq = ensemble.predict_uq(x_test)
Related docs¶
deepuq.methods.ensembles ¶
Deep ensemble wrappers for regression and classification uncertainty.
The ensemble variants in this module aggregate independently trained deterministic models. predict_uq returns a :class:deepuq.types.UQResult with either regression moments or class-probability moments.
DeepEnsembleClassifier ¶
Bases: _BaseDeepEnsemble
Classification ensemble using member-wise logits and probability averaging.
Shape contract
- input: any tensor accepted by the wrapped classifier
- member output: logits with shape
[batch, n_classes] predictreturns(mean_probs, probs_var)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
models | Sequence[Module] | Ensemble members that output logits with a shared class dimension. | required |
predict_uq ¶
Return mean class probabilities and probability variance.
Classification ensembles populate probs and probs_var. The regression variance fields mirror probability variance for convenience.
DeepEnsembleRegressor ¶
Bases: _BaseDeepEnsemble
Deterministic regression ensemble with epistemic uncertainty.
Shape contract
- input: any tensor accepted by the wrapped regressor
- member output:
[batch, ...] predictreturns(mean, variance)with the same prediction shape
Example
DeepEnsembleWrapper ¶
Bases: DeepEnsembleRegressor
Backward-compatible alias for the original regression-first wrapper.
Prefer :class:DeepEnsembleRegressor in new code.
HeteroscedasticDeepEnsembleRegressor ¶
Bases: _BaseDeepEnsemble
Regression ensemble with predicted aleatoric noise per member.
Each member must output concatenated mean and log-variance tensors. For vector outputs the concatenation is along the last dimension. For field outputs it is along channel dimension 1.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
models | Sequence[Module] | Ensemble members. Each member must emit mean and log-variance in a single concatenated tensor. | required |
min_variance | float | Floor applied after exponentiating predicted log-variance. | 1e-06 |
predict_uq ¶
Return predictive mean plus epistemic, aleatoric, and total variance.
HeteroscedasticMultiOutputDeepEnsembleRegressor ¶
Bases: HeteroscedasticDeepEnsembleRegressor
Multi-output regression ensemble with epistemic and aleatoric uncertainty.
Each member must emit concatenated mean and log-variance tensors for every output component.
MultiOutputDeepEnsembleRegressor ¶
Bases: DeepEnsembleRegressor
Multi-output regression ensemble with epistemic uncertainty.
Member predictions are vector-valued, typically with shape [batch, n_outputs].
predict_uq reports one epistemic variance value per output component.