Skip to content

0.5.0

Compare
Choose a tag to compare
@fehiepsi fehiepsi released this 24 Jan 20:44
· 517 commits to master since this release
6a1f522

New documentation page with galleries of tutorials and examples num.pyro.ai.

New Features

  • New primitive: prng_key to draw a random key under seed handler.
  • New autoguide: AutoDelta
  • New samplers:
    • HMCGibbs: a general HMC/NUTS-within-Gibbs interface.
    • DiscreteHMCGibbs: HMC/NUTS-within-Gibbs for models with discrete latent variables.
    • HMCECS: HMC/NUTS with energy conserving subsampling.
  • New example:
  • New kernels module in numpyro.contrib.einstein, in preparing for (Ein)Stein VI inference in future releases.
  • New user-friendly SVI.run method to simplify the training phase of SVI inference.
  • New feasible_like method in constraints.
  • New methods forward_shape and inverse_shape in Transform to infer output shape given input shape.
  • Transform.inv now returns an inversed transform, hence enables many new (inversed) transforms.
  • Support thinning in MCMC.
  • Add post_warmup_state and last_state to allow sequential sampling strategy in MCMC: allow to keep calling .run method to get more samples.
  • New history argument to support for Markov models with history > 1 in scan.
  • New forward_model_differentiation argument in HMC/NUTS kernels to allow to use forward mode differentiation.

Enhancements and Bug Fixes

  • #886 Make TransformReparam compatible with .to_event()
  • #883 Improve gradient computation of Euclidean kinetic energy.
  • #872 Enhance masked distribution to allow gradient propagate properly when using mask handler for invalid data.
  • #865 Make subsample faster in CPU.
  • #860 Fix for memory leak in MCMC.
  • #849 Expose logits attribute to some discrete distributions
  • #848 Add has_rsample and rsample attribute to distributions
  • #832 Allow a callable to return an init value in param primitive
  • #824 Fix for cannot using sample method of TFP distributions in sample primitive.
  • #823 Demo on how to use various init strategies in Gaussian Process example.
  • #822 Allow haiku/flax modules to take general args/kwargs in init.
  • #821 Better error messages when rng_key is missing.
  • #818 Better error messages when an error happens in the middle of inference.
  • #805 Display correct progress bar message after running MCMC.warmup.
  • #801 Raise an error early if missing plates for models with discrete latent variables.
  • #797 MCMC vectorized chain method works for models with deterministic sites.
  • #796 Bernoulli distribution returns an int instead of a boolean.
  • #795 Reveal signature for help(Distribution).

Thanks Ola Ronning @OlaRonning, Armin Stepanjan @ab-10, @cerbelaut, Xi Wang @xidulu, Wouter van Amsterdam @vanAmsterdam, @loopylangur, and many others for your contributions and helpful feedback!