sbi: simulation-based inference Versions Save

Simulation-based inference toolkit

v0.16.0

3 years ago

Major changes

  • Implementation of SNPE-A (thanks @famura and @theogruner, #474, #478, #480, #482)
  • Option to do inference over iid observations with SNLE and SNRE (#484, #488)

Minor changes

  • Fixed unused argument num_bins when using nsf as density estimator (#465)
  • Fixes to adapt to the new support handling in torch v1.8.0 (#469)
  • More scalars for monitoring training progress (thanks @psteinb #471)
  • Fixed bug in minimal.py (thanks @psteinb, #485)
  • Depend on pyknos v0.14.2

v0.15.1

3 years ago
  • add option to pass torch.data.DataLoader kwargs to all inference methods (thanks @narendramukherjee, #445)
  • fix bug due to release of torch v1.8.0 (#451)
  • expose leakage_correction parameters for log_prob correction in unnormalized posteriors (thanks @famura, #454)

v0.15.0

3 years ago

Major changes

  • Active subspaces for sensitivity analysis (#394, tutorial)
  • Method to compute the maximum-a-posteriori estimate from the posterior (#412)

API changes

  • pairplot(), conditional_pairplot(), and conditional_corrcoeff() should now be imported from sbi.analysis instead of sbi.utils (#394).
  • Changed fig_size to figsize in pairplot (#394).
  • moved user_input_checks to sbi.utils (#430).

Minor changes

  • Depend on new joblib=1.0.0 and fix progress bar updates for multiprocessing (#421).
  • Fix for embedding nets with SNRE (thanks @adittmann, #425).
  • Is it now optional to pass a prior distribution when using SNPE (#426).
  • Support loading of posteriors saved after sbi v0.15.0 (#427, thanks @psteinb).
  • Neural network training can be resumed (#431).
  • Allow using NSF to estimate 1D distributions (#438).
  • Fix type checks in input checks (thanks @psteinb, #439).
  • Bugfix for GPU training with SNRE_A (thanks @glouppe, #442).
  • Fixup for conditional correlation matrix (thanks @JBeckUniTb, #404)
  • z-score data using only the training data (#411)

v0.14.2

3 years ago
  • Small fix for SMC-ABC with semi-automatic summary statistics (#402)

v0.14.1

3 years ago
  • Support for training and sampling on GPU including fixes from nflows (#331)
  • Bug fix for SNPE with neural spline flow and MCMC (#398)
  • Small fix for SMCABC particles covariance
  • Small fix for rejection-classifier (#396)

v0.14.0

3 years ago
  • New flexible interface API (#378). This is going to be a breaking change for users of the flexible interface and you will have to change your code. Old syntax:
from sbi.inference import SNPE, prepare_for_sbi

simulator, prior = prepare_for_sbi(simulator, prior)
inference = SNPE(simulator, prior)

# Simulate, train, and build posterior.
posterior = inference(num_simulation=1000)

New syntax:

from sbi.inference import SNPE, prepare_for_sbi, simulate_for_sbi

simulator, prior = prepare_for_sbi(simulator, prior)
inference = SNPE(prior)

theta, x = simulate_for_sbi(simulator, proposal=prior, num_simulations=1000)
density_estimator = inference.append_simulations(theta, x).train()
posterior = inference.build_posterior(density_estimator)  # MCMC kwargs go here.

More information can be found here here.

  • Fixed typo in docs for infer (thanks @glouppe, #370)
  • New RestrictionEstimator to learn regions of bad simulation outputs (#390)
  • Improvements for and new ABC methods (#395)
    • Linear regression adjustment as in Beaumont et al. 2002 for both MCABC and SMCABC
    • Semi-automatic summary statistics as in Fearnhead & Prangle 2012 for both MCABC and SMCABC
    • Small fixes to perturbation kernel covariance estimation in SMCABC.

v0.13.2

3 years ago
  • Fix bug in SNRE (#363)
  • Fix warnings for multi-D x (#361)
  • Small improvements to MCMC, verbosity and continuing of chains (#347, #348)

v0.13.1

3 years ago
  • Make logging of vectorized numpy slice sampler slightly less verbose and address NumPy future warning (#347)
  • Allow continuation of MCMC chains (#348)

v0.13.0

3 years ago
  • Conditional distributions and correlations for analysing the posterior (#321)
  • Moved rarely used arguments from pairplot into kwargs (#321)
  • Sampling from conditional posterior (#327)
  • Allow inference with multi-dimensional x when appropriate embedding is passed (#335)
  • Fixes a bug with clamp_and_warn not overriding num_atoms for SNRE and the warning message itself (#338)
  • Compatibility with Pyro 1.4.0 (#339)
  • Speed up posterior rejection sampling by introducing batch size (#340, #343)
  • Allow vectorized evaluation of numpy potentials (#341)
  • Adds vectorized version of numpy slice sampler which allows parallel log prob evaluations across all chains (#344)

v0.12.2

3 years ago
  • Bug fix for zero simulations in later rounds (#318)
  • Bug fix for sbi.utils.sbiutils.Standardize; mean and std are now registered in state dict (thanks @plcrodrigues, #325)
  • Tutorials on embedding_net and presimulated data (thanks @plcrodrigues, #314, #318)
  • FAQ entry for pickling error