Source code for SFI.inference.sparse.base

"""
SFI.inference.sparse.base — Strategy protocol
==============================================

Every sparse-selection algorithm subclasses :class:`SparsityStrategy`
and implements :meth:`run`, which receives a :class:`SparseScorer` and
returns a :class:`SparsityResult`.
"""

from __future__ import annotations

from abc import ABC, abstractmethod

from .result import SparsityResult
from .scorer import SparseScorer


[docs] class SparsityStrategy(ABC): """Abstract base class for sparsity search strategies. Subclasses must implement :meth:`run`. """ #: Short identifier used in :attr:`SparsityResult.method`. name: str = "base"
[docs] @abstractmethod def run(self, scorer: SparseScorer, *, max_k: int, **kwargs) -> SparsityResult: """Execute the search and return a :class:`SparsityResult`. Parameters ---------- scorer : SparseScorer Provides ``info_and_coeffs`` / ``vmap_info`` for evaluating candidate supports. max_k : int Maximum model size to explore. Returns ------- SparsityResult """ ...