v0.6.0
Pre-release
Pre-release
What has changed
Deprecation notice
bp.run_bp
is deprecated in favor ofbp.run
.bp.run_bp
will be removed in future releases.- Dropped support for
python 3.7
.
New features
- Added a SDLP solver that solves the smoothed dual of the LP relaxation of the MAP problem by accelerated gradient descent.
- An alternative to Belief Propagation with convergence guarantees.
- Based on the Smooth Dual LP-MAP problem introduced in this paper.
- Leverages existing PGMax infrastructure to implement the underlying message-passing algorithm.
- Added a solver for the primal of the LP relaxation based on the LP solver from
cvxpy
.
Changes
- Implemented a unified interface for the BP and the SDLP solvers.
- Solvers can be created via
where
inferer = infer.build_inferer(fg.bp_state, backend=BACKEND)
BACKEND
can be"bp"
or"sdlp"
.
- Solvers can be created via
- Added a
run_with_diffs
function to the BP solver to monitor BP convergence. - Improved the stability of message updates at low temperatures for logical factors and pool factors.
- Improved the numerical stability of the messages / potentials clipping.
- Improved the handling of various corner cases, including variables with single state, empty variable groups, energy with infinite potentials, etc..
Examples
- Updated all example colabs to use the new unified interface.
- Added a colab notebook which uses the SDLP solver to
- Run inference on an Ising Model and compare its results with BP
- Extract sparse feature activations from visually complex binary scenes.