Skip to content

BaseEstimator

The abstract base class defining the estimator interface.

Overview

All estimators in Falcon must implement this interface. The base class defines methods for:

  • Training (train)
  • Sampling (sample_prior, sample_posterior, sample_proposal)
  • Persistence (save, load)
  • Control flow (pause, resume, interrupt)

Class Reference

BaseEstimator

Bases: ABC

Fully abstract base class defining the estimator interface.

All methods are abstract - no implementation details. Concrete implementations must provide all functionality.

train abstractmethod async

train(buffer)

Train the estimator.

Parameters:

Name Type Description Default
buffer

BufferView providing access to training/validation data

required
Source code in falcon/core/base_estimator.py
@abstractmethod
async def train(self, buffer) -> None:
    """
    Train the estimator.

    Args:
        buffer: BufferView providing access to training/validation data
    """
    pass

sample_prior abstractmethod

sample_prior(num_samples, parent_conditions=[])

Sample from the prior distribution.

Parameters:

Name Type Description Default
num_samples int

Number of samples to generate

required
parent_conditions List

Conditioning values from parent nodes

[]

Returns:

Type Description
RVBatch

RVBatch with samples and log probabilities

Source code in falcon/core/base_estimator.py
@abstractmethod
def sample_prior(
    self, num_samples: int, parent_conditions: List = []
) -> RVBatch:
    """
    Sample from the prior distribution.

    Args:
        num_samples: Number of samples to generate
        parent_conditions: Conditioning values from parent nodes

    Returns:
        RVBatch with samples and log probabilities
    """
    pass

sample_posterior abstractmethod

sample_posterior(num_samples, parent_conditions=[], evidence_conditions=[])

Sample from the posterior distribution.

Parameters:

Name Type Description Default
num_samples int

Number of samples to generate

required
parent_conditions List

Conditioning values from parent nodes

[]
evidence_conditions List

Observed evidence values

[]

Returns:

Type Description
RVBatch

RVBatch with samples and log probabilities

Source code in falcon/core/base_estimator.py
@abstractmethod
def sample_posterior(
    self,
    num_samples: int,
    parent_conditions: List = [],
    evidence_conditions: List = [],
) -> RVBatch:
    """
    Sample from the posterior distribution.

    Args:
        num_samples: Number of samples to generate
        parent_conditions: Conditioning values from parent nodes
        evidence_conditions: Observed evidence values

    Returns:
        RVBatch with samples and log probabilities
    """
    pass

sample_proposal abstractmethod

sample_proposal(num_samples, parent_conditions=[], evidence_conditions=[])

Sample from the proposal distribution for adaptive resampling.

Parameters:

Name Type Description Default
num_samples int

Number of samples to generate

required
parent_conditions List

Conditioning values from parent nodes

[]
evidence_conditions List

Observed evidence values

[]

Returns:

Type Description
RVBatch

RVBatch with samples and log probabilities

Source code in falcon/core/base_estimator.py
@abstractmethod
def sample_proposal(
    self,
    num_samples: int,
    parent_conditions: List = [],
    evidence_conditions: List = [],
) -> RVBatch:
    """
    Sample from the proposal distribution for adaptive resampling.

    Args:
        num_samples: Number of samples to generate
        parent_conditions: Conditioning values from parent nodes
        evidence_conditions: Observed evidence values

    Returns:
        RVBatch with samples and log probabilities
    """
    pass

save abstractmethod

save(node_dir)

Save estimator state to directory.

Parameters:

Name Type Description Default
node_dir Path

Directory to save state to

required
Source code in falcon/core/base_estimator.py
@abstractmethod
def save(self, node_dir: Path) -> None:
    """
    Save estimator state to directory.

    Args:
        node_dir: Directory to save state to
    """
    pass

load abstractmethod

load(node_dir)

Load estimator state from directory.

Parameters:

Name Type Description Default
node_dir Path

Directory to load state from

required
Source code in falcon/core/base_estimator.py
@abstractmethod
def load(self, node_dir: Path) -> None:
    """
    Load estimator state from directory.

    Args:
        node_dir: Directory to load state from
    """
    pass

pause abstractmethod

pause()

Pause training loop.

Source code in falcon/core/base_estimator.py
@abstractmethod
def pause(self) -> None:
    """Pause training loop."""
    pass

resume abstractmethod

resume()

Resume training loop.

Source code in falcon/core/base_estimator.py
@abstractmethod
def resume(self) -> None:
    """Resume training loop."""
    pass

interrupt abstractmethod

interrupt()

Terminate training loop.

Source code in falcon/core/base_estimator.py
@abstractmethod
def interrupt(self) -> None:
    """Terminate training loop."""
    pass