Releases: pyro-ppl/numpyro
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
0.9.2
New Features
- #1381 New
render_params
argument for render_model - #1366 Allow a fixed number of steps in HMC.
- New tutorials and examples:
- Modelling mortality over space and time
- New section on adding intermediate levels to Bayesian Hierarchical Linear Regression tutorial
Enhancements and Bug Fixes
- #1386 Support JAX 0.3.5
- #1388 Update jaxns to 1.0.0
- #1372 Fix batch shapes of
SineBivariateVonMises
distribution - #1375 Add
__repr__
method for constraints - #1358 Force validate_args to be keyword argument
- #1350 Enhance the AR2 example
Thanks, @cstoafer, @hesenp, @tcbegley, @themrzmaster, @karm-patel, @theorashid
0.9.1
New Features
- New distributions: AsymmetricLaplace and AsymmetricLaplaceQuantile for quantile regression.
- New tutorials and examples:
Enhancements and Bug Fixes
- #1320 Fix provenance logic for
numpyro.render_model
- #1330 Fix vectorize sampling for sites with size=0
- #1331 Allow nested params in SteinVI
- #1333 Reduce memory consumption for SteinVI
- #1325 Fix compat MCMC signature
Thanks, @Vinnie-Palazeti, @wataruhashimoto52, @hessammehr, @OlaRonning, @d-diaz!
0.9.0
New Features
- New VI inference: SteinVI. Checkout a couple examples in PRs #1297 #1298 for the usage.
- New distributions: MultivariateStudentT, DiscreteUniform, Kumaraswamy, RelaxedBernoulli .
- New tutorials and examples:
- Tutorial for Truncated distributions: a complete guide for how to construct a NumPyro distribution.
- Bayesian Hierarchical Stacking case study to average models based on weights from a hierarchical structure.
- Sine-skewed sine (bivariate von Mises) mixture to model the dihedral angles that occur in the backbone of a protein.
- AR2 processes to show how to avoid the (slow) Python for-loop.
- Holt-winter Exponential Smoothing example for time series forecasting.
- Hilbert space approximation for Gaussian processes example is significantly revised.
Enhancements and Bug Fixes
- #1305 Fixes HMCECS bug for likelihoods with multiple plates
- #1304 Improves warning mechanism when plates are missing.
- #1301 Fixes sparse Poisson density sometimes returns int output.
- #1289 Make HMC Gibbs algorithms work with improper distributions
- #1284 Adds various KL divergences for Gamma/Beta families
- #1281 Raises error if there are duplicated deterministic sites
- #1271 Better warning mechanism with stacklevel
- #1270 Incorporate kl divergences of Tensorflow Probability distributions
- #1259 #1266 Allow TruncatedNormal/Cauchy to take both low and high
- #1254
numpyro.contrib.indexing
is moved tonumpyro.ops.indexing
- #1252 Use multipledispatch for
kl_registry
- #1250 Added
cdf
methods for gamma, inverse gamma, log normal densities - #1248 Add ProvenanceArray to infer relational structure in a model
- #1244 Raise warning for the automatic enumeration behavior
- #1237 Enhance warnings for invalid parameters of
BetaProportion
distribution - #1227 Allow
prior
to be callable inrandom_flax_module
andrandom_haiku_module
- #1226 Allow init_to_sample work with scalar values
- #1225 Add color for divergences in Neal's example
- #1196 Allow custom precision function in laplace approximation autoguide
- #1194 Option to specify init state for SVI run
- #1185 #1189 Avoid -inf/nan samples in truncated distributions
- #1182 Extend scope handler for plate stack frames
- #1179 Support enumerate support for zero inflated distributions
- #1169 Allow pickle autoguides
This release is composed of great contributions and feedback from the Pyro community: @amalvaidya @MarcoGorelli @omarfsosa @maw501 @bjeffrey92 @hessammehr @OlaRonning @dykim29 @Carlosbogo @wataruhashimoto52 @Vedranh13 @ahmadsalim @austereantelope and many others. Thank you!
0.8.0
Breaking changes
Switch to softplus transforms for autoguide scales (thanks to experiments performed by @vitkl).
New Features
- New autoguide: AutoDAIS leverages HMC and annealed importance sampling within a variational inference framework
- New distributions: MixtureSameFamily, and directional distributions SineBivariateVonMises, SineSkewed
- New constraints: l1_ball for vectors with L1 norm less than 1
- New transforms: L1BallTransform, SimplexToOrderedTransform, ScaledUnitLowerCholeskyTransform
- #1116 New format_shapes utility to interpret the shapes of random variables/plates in a model.
- #1109 Allow direct use of TFP distributions in numpyro.sample
- New tutorials and examples:
- Principled prior with Dirichlet distribution for Ordinal Regression case study
- Horseshoe regression
- Bad posterior geometry and how to deal with it
Enhancements and Bug Fixes
- #1108 Avoid numerical problems when using BernoulliProbs
- #1118 Recommend AutoNormal guide when hessian in AutoLaplace is singular
- #1126 Smarter warning about discrete inference in SVI models
- #1136 Support to use SA sampler with arviz
- #1139 Document Poisson
is_sparse
argument - #1140 Make Sigmoid and StickBreakingTransform more stable
- #1149 Raise value error if num_steps bad in svi.run
- #1162 Use black[jupyter] in notebooks
This release is composed of great contributions and feedback from the Pyro community: @MarcoGorelli @OlaRonning @d-diaz @quattro @svilupp @peterroelants @prashjet @freddyaboulton @tcbegley @julianstastny @alexlyttle and many others. Thank you!
0.7.2
This is a patch release with the following new feature and fixes:
- New example Hilbert space approximation of Gaussian processes #1097 thanks to @omarfsosa
- Fix for rendering models with only discrete variables #1099 thanks to @bdatko
- Fix progress-bar issues when running multi-chain MCMC #1101