Complete reference for torchregress.ensemble. Every class, layer, and helper
is listed here. For background and decision guidance, see
Ensembles overview.
Foundation class. Each call to forward(x) runs every member and returns a stacked tensor [M, batch, ...] (a list only for non-tensor member outputs). Provides predict (mean + variance) and predict_full_covariance, which run members in eval mode and restore their previous modes. base_seed seeds member initialisation inside a forked RNG (the global RNG state is unchanged).
EnsembleFitConfig
Dataclass holding training options: epochs, lr, optimizer_cls, optimizer_kwargs, optimizer_factory, verbose, device. Built by fit().
BaseEnsembleModel.fit(...) trains each member independently with the
given criterion (no adversarial training term). optimizer_factory(model) -> Optimizer
lets you supply custom per-member optimizers (e.g. AdamW + Muon).
HeteroscedasticEnsembleModel inherits from BaseEnsembleModel (same training loop).
Member log-variances are converted with the GaussianNLLLoss training bounds
(log_var clamped to [log(1e-6), 30]), here and in the batch/packed ensembles.
Members predict bin logits; ensemble averages softmax probabilities
RandomPartitionEnsembleModel
Each member uses its own bin edges; ensemble averages CDFs on shared grid
CumulativeLinkEnsembleModel
Members predict cumulative-link logits; ensemble averages PMFs
MDNEnsembleModel
Members predict mixture components; mixture-of-mixtures aggregation
DensityEnsemble
Mixture of independently trained conditional densities (flows); log_prob, sample, entropy_decomposition → total / aleatoric / epistemic; fit_weights(x, y) fits the mixture weights with a sandwich covariance (weight_covariance) and log_prob_std(x, y) returns the standard error of log p(y \| x). See flow ensembles
HeteroscedasticBatchEnsembleModel
Parameter-efficient shared-backbone ensemble with per-member (μ, log_σ²) outputs
fromtorchregress.ensembleimportHeteroscedasticBatchEnsembleModelmodel=HeteroscedasticBatchEnsembleModel(backbone=backbone,output_size=1,ensemble_size=4# backbone.feature_dim required)out=model(x)# {"means": [B, M, D], "log_vars": [B, M, D]}pred=model.predict(x)# pred["mean"], pred["variance"], pred["epistemic_variance"], pred["aleatoric_variance"]
Wraps any model with nn.Dropout layers; enables dropout at inference time and runs n_samples forward passes. Provides mc_forward, predict_with_uncertainty and predict_interval.
enable_dropout
(model) — Set all nn.Dropout modules to train() mode (for MC-Dropout inference).
References: Gal & Ghahramani, "Dropout as a Bayesian Approximation" (ICML 2016).
Concatenates base-model predictions and feeds them into a meta_learner (e.g. another nn.Module).
SoftmaxModelCombiner
Learns softmax weights over a fixed pool of base models. predict_with_uncertainty returns (mean, total_var) via law of total variance.
All combiners use _batched_ensemble_forward, which uses torch.func.vmap /
stack_module_state for fast batched inference when gradients aren't required.