Releases: sbi-dev/sbi
Releases · sbi-dev/sbi
v0.23.2
Bug Fixes
- fixup for failing hmc test by @michaeldeistler (#1247)
- fix: make RestrictedPrior a distribution to enable log_prob @janfb (#1257)
- fix: npe iid handling by @janfb (#1262)
- fix: tutorials test error handling, fix bugs in tutorials by @janfb (#1264)
- fix #1260: include points in plotting limits by @janfb (#1265)
- fix: conditioned potential error handling by @janfb, @michaeldeistler (#1275, #1289)
- fix: Allow 1D pytorch distributions by @michaeldeistler (#1286)
Documentation
- Rename SNPE to NPE in the README by @michaeldeistler (#1248)
- update pickling FAQ by @michaeldeistler (#1255)
- Adding example for custom DataLoader to tutorial 18 by @psteinb (#1256)
- docs: add readme intro to docs landing page by @janfb (#1272)
- Change sampling method for LC2ST to
sample_batched()
by @JuliaLinhart (#1279)
Maintenance
- Refactor simulate_for_sbi location by @samadpls (#1253)
- build: devcontainer update by @janfb (#1252)
- fix: docker notebook python version by @janfb (#1258)
- refactor: remove outputs except plots from tutorials. by @janfb (#1266)
- build: automatic nb stripping and pypi upload by @janfb (#1267)
- refactor: remove deprecated x_shape where not needed by @janfb (#1271)
- more explicit error message for CNN shapes by @Ankush7890 (#1281)
v0.23.1
v0.23.0
Announcements
- Re-licensing: license change from
AGPLv3 to
Apache-2.0 (see #997 for
details) sbi
is now affiliated withNumFOCUS
🎉- New contributors 🎉: @anastasiakrouglova, @theogruner, @felixp8, @Matthijspals,
@jsvetter, @pfuhr, @turnmanh, @fariedabuzaid, @augustes, @zinaStef, @Baschdl,
@danielmk, @lisahaxel, @janko-petkovic, @samadpls, @ThomasGesseyJonesPX, @schroedk
Major Changes
- internal renaming of all inference classes from, e.g.,
SNPE
toNPE
(i.e., we
removed theS
prefix). The functionality of the classes remains the same. The NPE
class handles both the amortized and sequential versions of neural posterior
estimation. An alias for SNPE (and other sequential methods) still exists for
backwards compatibility (#1238) (@michaeldeistler). - change
sbi
default parameters:training_batch_size=200
,num_chains=20
(#1221)
(@janfb) - change imports of
posterior_nn
,likelihood_nn
, andclassifier_nn
. They should
now be imported fromsbi.neural_nets
, not fromsbi.utils
(#994) (@famura) - big refactoring of plotting utilities, new tutorial (#1084) (@Matthijspals)
- improved tutorials and website documentation (#1012, #1051, #1073) (@augustes,
@zinaStef, @lisahaxel, @psteinb) - improved website structure and contribution guides (#1019) (@tomMoral, @janfb)
- drop support for python3.8 and torch1.12 (#1233)
- refactor folder structure and naming of
neural_nets
(#1237) (@michaeldeistler)
New Features
- full flexibility over the training loop (#983) (@michaeldeistler)
- unified density estimator classes (#952, #965, #979, #1151) (@michaeldeistler,
@gmoss13, @tomMoral, @manualgloeckler) - vectorized sampling and log_prob for
(S)NPE
given batches of x (#1153)
(@manuelgloeckler, @michaeldeistler) - batched sampling for vectorized MCMC samplers (#1176, #1210) (@gmoss13, @janfb)
- support @Zuko as a backend for normalizing flows (#1088, #1116)
(@anastasiakrouglova) - local c2st metric (#1109) (@JuliaLinhart)
- tarp coverage metric (#1106) (@psteinb)
- add interface for @pymc samplers (#1053) (@famura, @felixp8)
- flow matching density estimators (#1049) (@turnmanh, @fariedabuzaid, @janfb)
- score matching density estimators (#1015) (@rdgao, @jsvetter, @pfuhr,
@manuelgloeckler, @michaeldeistler, @janfb) - ABC methods for trial-based data using statistical distances (#1104)
(@theogruner) - support Apple MPS as gpu device (#912) (@janfb)
- dev container for using
sbi
in codespaces on GitHub (#1070) (@turnmanh) - enable importance sampling for likelihood-based estimators (#1183) (@manuelgloeckler)
- refactoring and unified shape handling for
RatioEstimator
(#1097) (@bkmi) - faster sbc and tarp calibration checks via batched sampling (#1196) (@janfb)
- batched sampling and embedding net support for
MNLE
(#1203) (@janfb) - adapt
MNLE
to new densitye stimator abstraction (#1089) (@coschroeder) - better plotting options for coverage plots (#1039, #1212) (@janfb)
- allow for potential_fn to be a Callable (#943) (@michaeldeistler)
Bug Fixes
- bugfix for embedding net tutorial (#1159) (@Deismic)
- Fixup for process_x in EnsemblePosterior (#1148) (@Deismic)
- fixed notebook by changing MCMC parameters (#1058) (@zinaStef)
- fix: add NeuralPosteriorEnsemble to utils.init (#1002) (@jnsbck)
- fix: print_false_positive_rate (#976) (@danielmk)
- fix: make VIPosterior pickable (#951) (@manuelgloeckler)
- fix: bug in importance sampled posterior (#1081) (@max-dax)
- fix: embedding device and warning handling (#1186) (@janfb)
- fix: c2st with constant features (#1204) (@janfb)
- fix: erroneous warnings about different devices (#1225, @ThomasGesseyJonesPX)
- fix: type annotation in class
ConditionedPotential
(#1222) (@schroedk)
Maintenance and other changes
- add pre-commit hooks (#955) (@janfb)
- add ruff to replace
isort
,black
,flake
(#960, #978, #1113) (@janfb) - switch to
pyproject.toml
for package specification (#941) (@janfb) - Split the GitHub workflow in CI and CD (#1063) (@famura)
- split linting process from the CI/CD workflow (#1164) (@tomMoral)
- Switch to the newest
pyright
and fix all typing errors (#1045, #1108) (@Baschdl) - introduce two docs versions:
latest
pointing to latest release at
https://sbi-dev.github.io/sbi/latest/ anddev
pointing to the latest version on
main
https://sbi-dev.github.io/sbi/dev/
v0.22.0
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 byoffdiag
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 calledoffdiag
to match other kwargs.- alternating colors for
samples
andpoints
- option to add a
legend
and passkwargs
for the legend.
Bug fixes
- fixed memory leak in in
append_simulations
(thanks to @VictorSven, #803) - bug fix for CNRE (thanks to @bkmi, #815)
- bug fix for iid-inference with posterior ensembles (@janfb, #826)
- bug fix for simulation-based calibration with VI posteriors (@janfb, #834, #838)
- bug fix for BoxUniform device handling (@janfb, #854, #856)
- bug fix for MAP estimates with independent priors (@janfb, #867)
- bug fix for tutorial on SBC (@michaeldeistler, #891)
- fix spurious seeding for
simulate_for_sbi
(@jan-matthis, #876) - bump python version of github action tests to
3.9.13
(@michaeldeistler, #888, #900)
v0.21.0
v0.20.0
Major changes and bug fixes
- implementation of "Truncated proposals for scalable and hassle-free sbi" (#754)
- sample-based expected coverage tests (#754)
- permutation invariant embedding to allow iid data in SNPE (thanks @coschroeder, #751)
- convolutional neural network embedding (thanks @coschroeder, #745, #751, #769)
- disallow invalid simulations when using SNLE, SNRE, or atomic SNPE-C (#768)
Enhancements
v0.19.2
v0.19.1
v0.19.0
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
withMultipleIndependent
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:
- 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
Breaking changes
- Posteriors saved under
sbi
v0.17.2
or older can not be loaded undersbi
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 thesampler interface
(see tutorial
here) (#573) retrain_from_scratch_each_round
is now calledretrain_from_scratch
(#598, thanks to @jnsbck)- API changes that had been introduced in
sbi v0.14.0
andv0.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
andfig
(#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
andActiveSubspace
(#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 calledproposal
instead ofprior
(#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 forSNPE
(#642)