Releases: pyro-ppl/numpyro
0.15.0
Breaking change: By default, Predictive will recompute the "deterministic" sites if they are provided by posterior_samples. This brings Predictive to the behavior before the 0.14.0 release. To avoid recomputing deterministic sites like in the 0.14.0 release, set Predictive(..., exclude_deterministic=False)
.
New modules
What's Changed
- Raise
ValueError
if deterministic site is exposed in sub-guide. by @tillahoffmann in #1757 - Add Initial SDVI Implementation by @treigerm in #1758
- Fix ruff not format the changes by @fehiepsi in #1761
- Add complex constraint and real Fourier transform. by @tillahoffmann in #1762
- Fix ruff not fixing linter errors by @ordabayevy in #1764
- Ruff format notebooks by @ordabayevy in #1765
- Add explicit reparametrizer. by @tillahoffmann in #1754
- Add a warning message when using prng_key outside of seed by @fehiepsi in #1760
- Add a note to seed handler to mention that its instances cannot be jitted directly by @fehiepsi in #1759
- fixed lint for #1760 by @OlaRonning in #1769
- Add
RecursiveLinearTransform
for linear state space models. by @tillahoffmann in #1766 - Fix math rendering in variationally inferred parameterization tutorial by @brendancooley in #1767
- Add ZeroSumNormal distribution by @kylejcaron in #1751
- Verify result of
biject_to
satisfies the constraint. by @tillahoffmann in #1770 - Remove the deprecated import jax.tree_map by @fehiepsi in #1775
- Fix ensemble mcmc multiple run by @amifalk in #1774
- Censoring example notebook by @juanitorduz in #1773
- Avoid unnecessary reshape for trivial expand by @fehiepsi in #1776
- Allow to use Delta on numpy arrays without moving them to jax devices by @fehiepsi in #1777
- Do not unflatten unevaluated lazy properties. by @tillahoffmann in #1778
- Move nested sampling docs to contrib by @fehiepsi in #1782
- Fix image sizes censoring notebook by @juanitorduz in #1783
- Relax check of positive definite constraint. by @tillahoffmann in #1784
- Add entropy implementations. by @tillahoffmann in #1787
- sample from distribution without storing by @amifalk in #1790
- Predictive fix when deterministic sites are present by @kylejcaron in #1789
- fix singleton plate bug by @amifalk in #1792
- add constraints.greater_than_eq, constraints.positive_semidefinite, constraints.nonnegative by @amifalk in #1793
- Tutorial Lotka Volterra multiple by @A2P2 in #1701
- Different supports in component distributions for mixture models by @Qazalbash in #1791
- Add a note that Trace_EnumELBO does not work with AutoContinuous by @fehiepsi in #1796
- Updat .pre-commit hook version by @juanitorduz in #1795
- Add Wishart distribution. by @tillahoffmann in #1779
- Add HSGP contribution module by @juanitorduz in #1794
- Bump to 0.15.0 by @fehiepsi in #1797
New Contributors
- @brendancooley made their first contribution in #1767
- @kylejcaron made their first contribution in #1751
- @A2P2 made their first contribution in #1701
- @Qazalbash made their first contribution in #1791
Full Changelog: 0.14.0...0.15.0
0.14.0
Breaking change: Predictive will try to avoid recomputing "deterministic" sites if it is provided in posterior_samples
. Those deterministic sites are excluded in the previous releases.
What's Changed
- Add AutoGuideList by @tare in #1644
- Require sample_shape passed as keyword argument to AutoGuides by @tare in #1659
- correct event_dim use by @deoxyribose in #1661
- Allow substitute deterministic sites by @fehiepsi in #1664
- Tutorial on Automatic Partial centering of model using LocScaleReparam by @Madhav-Kanda in #1663
- Added kl_divergence for multivariate normals by @lumip in #1654
- Support multi sample guides in Trace_ELBO by @fehiepsi in #1666
- Reference AutoGuideList in docs by @tare in #1669
- fix init_params bug in hmcgibbs by @amifalk in #1673
- Kumaraswamy distribution bug fixes by @e-pet in #1675
- Allow AutoSemiDAIS to work without global variable by @fehiepsi in #1665
- Update continuous.py by @etymology in #1679
- Fix intersphinx issues by @fehiepsi in #1680
- Avoid Kumaraswamy numerical issues by @fehiepsi in #1681
- Enforce supported python version in setup.py by @pierreglaser in #1687
- Fix faulty interaction between
jax.vmap
andvalidate_args=True
by @pierreglaser in #1686 - Use Cholesky decomp instead of inverting kernel by @DanWaxman in #1688
- Make possible to fix the number of LF steps and tune the step size by @yayami3 in #1698
- Support scan for Trace_ELBO by @deoxyribose in #1693
- Add ruff support by @juanitorduz in #1700
- Hot fix: remove version requirement by @juanitorduz in #1703
- Remove
setup.cfg
by @juanitorduz in #1704 - Support optional pre-commit hooks by @juanitorduz in #1705
- transfer_states_to_host convenience function by @amifalk in #1707
- Change case to render graph for conditioned nodes. by @yayami3 in #1711
- Add isort (ruff) by @juanitorduz in #1718
- remove upper bound sphinx by @juanitorduz in #1721
- Improve current ruff rules by @juanitorduz in #1720
- Fix links in examples and tutorials by @fehiepsi in #1722
- Fix sidebar not displayed properly on phone by @fehiepsi in #1723
- Add two ensemble sampling methods by @amifalk in #1692
- fix elbo normalization with multi_sample_guide=True by @danielward27 in #1728
- Raise
NotImplementedError
rather than return it. by @tillahoffmann in #1732 - Support forward mode differentiation for SVI by @juanitorduz in #1731
- fixing nested_sampling.py by @renecotyfanboy in #1738
- Add auto-batched (low-rank) multivariate normal guides. by @tillahoffmann in #1737
- Implementation of DCC inference algorithm by @treigerm in #1715
- Fix for pickling an MCMC object with HMCGibbs (and MixedHMC) samplers and parallel chains by @msaintja in #1746
- Factored out HMCECS proxies to contrib by @OlaRonning in #1748
- Add median to batched auto-guides. by @tillahoffmann in #1749
- Address google/jax#19885 for numpyro. by @tillahoffmann in #1743
- Fix ECS to work with Haiku by @OlaRonning in #1750
- Add github action for releasing by @fehiepsi in #1736
- Bump to 0.14.0 by @fehiepsi in #1735
New Contributors
- @amifalk made their first contribution in #1673
- @e-pet made their first contribution in #1675
- @etymology made their first contribution in #1679
- @DanWaxman made their first contribution in #1688
- @juanitorduz made their first contribution in #1700
- @danielward27 made their first contribution in #1728
- @tillahoffmann made their first contribution in #1732
- @renecotyfanboy made their first contribution in #1738
- @treigerm made their first contribution in #1715
- @msaintja made their first contribution in #1746
Full Changelog: 0.13.2...0.14.0
0.13.2
0.13.1
0.13.0
Breaking changes
Drops support for python 3.8 and requires jax version >= 0.4.14
New Features
- Distributions are now vmap-able (#1529) (a great contribution by @pierreglaser)
Enhancements and Bug Fixes
- Enhance LocScaleReparam's documentation (#1599) by @Madhav-Kanda
- Fix incorrect unflattenning of inverse transforms (#1600) by @pierreglaser
- Update Stein mixture (#1601 and #1612) by @OlaRonning
- Support model without global variables in AutoSemiDAIS (#1610 and #1619) by @fehiepsi
- Fix mixture assert message: string shoulf be f-string (#1617) by @adrn
- Add support for local variables in RenyiELBO (#1608) by @fehiepsi
- Fix quantile computation of mvn autoguides (#1622) by @fehiepsi
- Respect log_density in kl of delta (#1625) by @fehiepsi
- Add vectorized_particles to ELBO (#1624) by @fehiepsi
- Fix bug in SineBivariateVonMises sampler (#1628) by @deoxyribose
This release is composed of great contributions and feedback from the Pyro community. Thank you!
0.12.1
0.12.0
New Features
- New distribution: Gompertz distribution (#1551)
- New initialization strategy: init_to_mean (#1550)
- New examples and tutorials:
- Illustrate the usage of JAX PositionalSharding for distributing the computations of log_prob/grad over multiple devices in MCMC (#1514)
- A port of Gaussian Mixture Model tutorial from Pyro (#1562)
- A toy mixture model with discrete enumeration (#1568)
- New inference utilities get_transforms and unconstrain_fn to transform between unconstrained and constrained space (#1564)
- Support jaxns>=2.0.1 (#1546)
Enhancements and Bug Fixes
- Make transforms jittable (#1575)
- Fixed typo in surrogate posterior of beta (#1591)
- Do not scale mnist label (#1589)
- Do not mutate shapes of ExpandedDistribution for map-free ops (#1574)
- Add support for JAX custom PRNG (#1587)
- Include deterministic variables in AutoDelta's sample_posterior (#1584)
- Fix forward shape of SimplexToOrderTransform (#1583)
- Fix inf's in TruncatedNormal log_prob & sample (#1581)
- Allow users to specify total_count_max in Multinomial (#1557)
- Allow pickled mcmc object to run post warmup phase (#1558)
- Add init_params argument to svi.init() and svi.run() (#1561)
- Support pickling MCMC objects with enumeration (#1577)
- Raise error when reparameterize lognormal (#1548)
- Avoid initializing model params when already specified in guide (#1553)
- Respect init params if provided to mcmc.run (#1547)
- Fix provenance for jax 0.4.4 (#1543)
- Use analytic kl divergence in TraceEnum_ELBO (#1533)
- Properly handle contraction of guide plates in TraceEnum_ELBO (#1537)
- Raise an error if there is no common scale when model enumerated (#1536)
- Optimize reduction of enumerated guide sites (#1531)
- Guess max_plate_nesting in TraceEnum_ELBO (#1528)
0.11.0
Breaking changes
Drop Python 3.7 support and require the minimal jax version 0.4.
New Features
- New distributions:
- EulerMaruyama for modelling stochastic differential equations (SDE) (thanks to @yayami3)
- GaussianCopula and GaussianCopulaBeta (i.e. MultivariateBeta) to incorporate correlations into univariate random variables (thanks to @hessammehr)
- MatrixNormal generalizes multivariate normal to matrix-valued random variables (thanks to @kaijennissen)
- LogUniform distribution (thanks to @yayami3 and @andrewfowlie)
- New objective TraceEnum_ELBO to support enumeration in SVI (thanks to @ordabayevy)
- New tutorial:
- Text-Based Ideal Points using NumPyro (thanks to @elchorro)
- #1508 Allow rendering deterministic sites (thanks to @YanniPapandreou)
Enhancements and Bug Fixes
- #1507 Made constraints robust to pickling (thanks to @pierreglaser)
- #1515 Fixed log_prob for negative correlation in SineBivariateVonMises distribution (thanks to @OlaRonning)
- #1509 Fixed a bug at flatten/unflatten distributions which mixed the order of arguments of the distributions (thanks to @hessammehr)
- #1494 Fixed Mixture distribution with unnormalized logits giving incorrect log_prob
- #1486 Returned a positive ordered vector when applies ExpTransform for an ordered vector
- #1491 Fixed Mixture intermediate values
- #1480 Fixed some computations in Bayesian Hierarchical Stacking tutorial (thanks to @cpieringer)
- #1478 Added icdf methods for Beta, Gamma, StudentT
- #1477 Allowed multiple arguments to initialize flax/haiku modules (thanks to @fehiepsi)
- #1475 Used TFP's
betainc
(which supports taking gradient w.r.t. parameters) in StudentT.cdf (thanks to @colehaus)
0.10.1
0.10.0
New Features
- #1394 New distribution Conditional Autoregressive CAR (thanks to @theorashid)
- #1434 New flexible auto guides for models with both global and local latent variables: AutoSemiDAIS and AutoSurrogateLikelihoodDAIS
- #1429 New example: Conditional Variational Autoencoder in Flax (thanks to @dirmeier)
Enhancements and Bug Fixes
- #1401 Fix
obs
argument is not respected whensample
primitive is not executed under any handler (thanks to @gcskoenig) - #1412 TraceGraph_ELBO implementation using provenance tracking
- #1418 Fix SA sampler cannot be run in parallel chains
- #1419 Fix categorical sampler occasionally generate out-of-support samples
- #1436 Allow to use
potential_fn
in BarkerMH - #1437 Fix for AutoMultivariateNormal.get_posterior method return incorrect distribution (thanks to @xidulu)
- #1444 Promote shapes for observed variables inside
scan
's transition function - #1443 Consider the time dimension of markov models with
history=0
as plate - #1441 More stable check for corr_cholesky constraint
- #1400 Fix SineBivariateVonMises sampler