Core Abstractions
The core module contains the central Ensemble class and adapters that allow Bensemble to work with any PyTorch model.
Ensemble
bensemble.core.ensemble.Ensemble
Bases: Module
Ensemble of model predictors combined via an aggregation function.
Initializes the Ensemble container.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
members | MemberAdapter | MemberAdapter instance wrapping ensemble members. | required |
combiner | Callable[[Tensor], Tensor] | None | Aggregation function taking (M, batch, ) and returning combined predictions (batch, ). Defaults to averaging across members. | None |
Source code in bensemble/core/ensemble.py
forward
Computes combined ensemble prediction.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x | Tensor | Input tensor of shape (batch_size, *). | required |
Returns:
| Name | Type | Description |
|---|---|---|
Predictions | Predictions | Aggregated output prediction tensor. |
Source code in bensemble/core/ensemble.py
from_models classmethod
Creates an explicit ensemble from a list of independent models.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
models | list[Module] | List of trained PyTorch modules. | required |
Returns:
| Name | Type | Description |
|---|---|---|
Ensemble | Ensemble | Configured Ensemble instance. |
Source code in bensemble/core/ensemble.py
from_posterior classmethod
Creates an explicit ensemble by sampling from an approximated posterior.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
source | PosteriorSource | Posterior approximation source implementing | required |
n_members | int | Number of members to sample. Defaults to 10. | 10 |
**kwargs | Additional keyword arguments passed to | {} |
Returns:
| Name | Type | Description |
|---|---|---|
Ensemble | Ensemble | Configured Ensemble instance. |
Source code in bensemble/core/ensemble.py
from_stochastic classmethod
Creates an implicit ensemble from a single stochastic model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model | Module | Stochastic neural network module. | required |
num_samples | int | Number of stochastic forward samples. Defaults to 30. | 30 |
mode | str | Stochastic mode ("dropout", "bayesian", or "auto"). Defaults to "auto". | 'auto' |
Returns:
| Name | Type | Description |
|---|---|---|
Ensemble | Ensemble | Configured Ensemble instance. |
Source code in bensemble/core/ensemble.py
predict_members
Computes predictions for each individual member.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x | Tensor | Input tensor of shape (batch_size, *). | required |
Returns:
| Name | Type | Description |
|---|---|---|
MemberPredictions | MemberPredictions | Per-member predictions of shape (num_members, batch_size, *). |
Source code in bensemble/core/ensemble.py
Member Adapters
bensemble.core.member.MemberAdapter
Bases: Module
Adapts different prediction sources into a uniform (M, batch, *) interface.
bensemble.core.member.ExplicitMembers
Bases: MemberAdapter
Wraps a list of independent nn.Module instances.
Source code in bensemble/core/member.py
bensemble.core.member.StochasticMembers
Bases: MemberAdapter
Wraps a single model whose forward pass is stochastic.