Skip to content

Releases: sbi-dev/sbi

v0.22.0

04 Dec 11:07
Compare
Choose a tag to compare

API change

  • We have moved sbi to an new github organization: https://github.com/sbi-dev/sbi
  • We have changed the website of the sbi docs: https://sbi-dev.github.io/sbi/.
  • sbi.analysis.pairplot: upper was replaced by offdiag and will be deprecated in a future release.

Features and enhancements

  • size-invariant embedding nets for amortized inference with iid-data (@janfb, #808)
  • option for new using MAF with rational quadratic splines (thanks to @ImahnShekhzadeh, #819)
  • improved docstring for process_prior (thanks to @musoke, #813)
  • extended tutorial for SBI with iid data (@janfb, #857)
  • new tutorial for SBI with experimental conditions and mixed data (@janfb, #829)
  • New options for pairplot:
    • upper is now called offdiag to match other kwargs.
    • alternating colors for samples and points
    • option to add a legend and pass kwargs for the legend.

Bug fixes

v0.21.0

22 Dec 16:15
Compare
Choose a tag to compare

v0.20.0

04 Nov 07:39
Compare
Choose a tag to compare

Major changes and bug fixes

Enhancements

  • add tutorial on all available methods (#754)
  • allow seeding of simulate_for_sbi on multiple workers (#762)
  • expose enable_transforms in sampler interface (#756)
  • bugfix for building the transformation of transformed distributions (#756)

v0.19.2

30 Aug 09:20
Compare
Choose a tag to compare
  • Rely on new version of pyknos with bugfix for APT with MDNs (#734)
  • bugfix: atomic SNPE-C now allows any kind of proposal (#732)
  • bugfix for SNPE with implicit prior on GPU (#730)
  • SNPE-A has force_first_round_loss=True as default (#729)

v0.19.1

24 Aug 06:14
Compare
Choose a tag to compare
  • bug fix for ArviZ integration (#727)

v0.19.0

13 Aug 19:13
Compare
Choose a tag to compare

Major changes and bug fixes

  • new option to sample posterior using importance sampling (#692)
  • new option to use arviz for posterior plotting and MCMC diagnostics (#546, #607, thanks to @sethaxen)
  • fixes for using the VIPosterior with MultipleIndependent prior, a51e93b
  • bug fix for sir (sequential importance reweighting) for MCMC initialization (#692)
  • bug fix for SNPE-A 565082c
  • bug fix for validation loader batch size (#674, thanks to @bkmi)
  • small bug fixes for pairplot and MCMC kwargs

Enhancements

  • improved and new tutorials:
    • Tutorial for simulation-based calibration (SBC) (#629, thanks to @psteinb)
    • Tutorial for sampling the conditional posterior (#667)
  • new option to use first-round loss in all rounds
  • simulated data is now stored as Dataset to reduce memory load and add flexibility
    with large data sets (#685, thanks to @tbmiller-astro)
  • refactoring of summary write for better training logs with tensorboard (#704)
  • new option to find peaks of 1D posterior marginals without gradients (#707, #708, thanks to @Ziaeemehr)
  • new option to not use parameter transforms in DirectPosterior for more flexibility with custom priors (#714)

v0.18.0

04 Mar 12:56
Compare
Choose a tag to compare

Breaking changes

  • Posteriors saved under sbi v0.17.2 or older can not be loaded under sbi
    v0.18.0 or newer.
  • sample_with can no longer be passed to .sample(). Instead, the user has to rerun
    .build_posterior(sample_with=...). (#573)
  • the posterior no longer has the the method .sample_conditional(). Using this
    feature now requires using the sampler interface (see tutorial
    here) (#573)
  • retrain_from_scratch_each_round is now called retrain_from_scratch (#598, thanks to @jnsbck)
  • API changes that had been introduced in sbi v0.14.0 and v0.15.0 are not enforced. Using the interface prior to
    those changes leads to an error (#645)
  • prior passed to SNPE / SNLE / SNRE must be a PyTorch distribution (#655), see FAQ-7 for how to pass use custom prior.

Major changes and bug fixes

  • new sampler interface (#573)
  • posterior quality assurance with simulation-based calibration (SBC) (#501)
  • added Sequential Neural Variational Inference (SNVI) (GlΓΆckler et al. 2022) (#609, thanks to @manuelgloeckler)
  • bugfix for SNPE-C with mixture density networks (#573)
  • bugfix for sampling-importance resampling (SIR) as init_strategy for MCMC (#646)
  • new density estimator for neural likelihood estimation with mixed data types (MNLE, #638)
  • MCMC can now be parallelized across CPUs (#648)
  • improved device check to remove several GPU issues (#610, thanks to @LouisRouillard)

Enhancements

  • pairplot takes ax and fig (#557)
  • bugfix for rejection sampling (#561)
  • remove warninig when using multiple transforms with NSF in single dimension (#537)
  • Sampling-importance-resampling (SIR) is now the default init_strategy for MCMC (#605)
  • change mp_context to allow for multi-chain pyro samplers (#608, thanks to @sethaxen)
  • tutorial on posterior predictive checks (#592, thanks to @LouisRouillard)
  • add FAQ entry for using a custom prior (#595, thanks to @jnsbck)
  • add methods to plot tensorboard data (#593, thanks to @lappalainenj)
  • add option to pass the support for custom priors (#602)
  • plotting method for 1D marginals (#600, thanks to @GuyMoss)
  • fix GPU issues for conditional_pairplot and ActiveSubspace (#613)
  • MCMC can be performed in unconstrained space also when using a MultipleIndependent distribution as prior (#619)
  • added z-scoring option for structured data (#597, thanks to @rdgao)
  • refactor c2st; change its default classifier to random forest (#503, thanks to @psteinb)
  • MCMC init_strategy is now called proposal instead of prior (#602)
  • inference objects can be serialized with pickle (#617)
  • preconfigured fully connected embedding net (#644, thanks to @JuliaLinhart #624)
  • posterior ensembles (#612, thanks to @jnsbck)
  • remove gradients before returning the posterior (#631, thanks to @tomMoral)
  • reduce batchsize of rejection sampling if few samples are left (#631, thanks to @tomMoral)
  • tutorial for how to use SBC (#629, thanks to @psteinb)
  • tutorial for how to use SBI with trial-based data and mixed data types (#638)
  • allow to use a RestrictedPrior as prior for SNPE (#642)

v0.17.2

13 Nov 16:47
Compare
Choose a tag to compare

Minor changes

  • bug fix for transforms in KDE (#552)

v0.17.1

10 Nov 09:55
Compare
Choose a tag to compare

Minor changes

  • improve kwarg handling for rejection abc and smcabc
  • typo and link fixes (#549, thanks to @pitmonticone)
  • tutorial notebook on crafting summary statistics with sbi (#511, thanks to @ybernaerts)
  • small fixes and improved documenentation for device handling (#544, thanks to @milagorecki)

v0.17.0

04 Aug 08:09
Compare
Choose a tag to compare

Major changes

  • New API for specifying sampling methods (#487). Old syntax:
posterior = inference.build_posterior(sample_with_mcmc=True)

New syntax:

posterior = inference.build_posterior(sample_with="mcmc")  # or "rejection"
  • Rejection sampling for likelihood(-ratio)-based posteriors (#487)
  • MCMC in unconstrained and z-scored space (#510)
  • Prior is now allowed to lie on GPU. The prior has to be on the same device as the one
    passed for training (#519).
  • Rejection-ABC and SMC-ABC now return the accepted particles / parameters by default,
    or a KDE fit on those particles (kde=True) (#525).
  • Fast analytical sampling, evaluation and conditioning for DirectPosterior trained
    with MDNs (thanks @jnsbck #458).

Minor changes

  • scatter allowed for diagonal entries in pairplot (#510)
  • Changes to default hyperparameters for SNPE_A (thanks @famura, #496, #497)
  • bugfix for within_prior checks (#506)