Skip to content

Releases: pymc-devs/pytensor

rel-2.23.0

06 Jun 13:00
4b6a444

Choose a tag to compare

What's Changed

Major Changes 🛠

  • Add support for random Generators in Numba backend by @ricardoV94 in #69. This PR introduces multiple (long delayed) breaking changes regarding RandomVariables:
    • Number of default inputs is reduced from 3 (rng, size, dtype) to 2 (rng, size). Other than changes in the signature, any code that relied on positional indexing to split these parameters from the distribution parameters like dist_params = x.owner.inputs[3:] must be updated. A helper RandomVariable method dist_params can be used instead like dist_params = x.owner.op.dist_params(x.owner)
    • A distinct RandomVariable Op must now be created for each distinct dtype. Comparisons that don't care about this distinction that used to look like x.owner.op == normal should be replaced by isinstance(x.owner.op, NormalRV)
    • Support for legacy RandomState variables removed. Rng variables must now be of RandomGenerator type. randint, which only worked with RandomState rngs was removed. Use integers instead.
    • size=None is no longer internally converted to size=(). size=() now behaves differently than size=None (just like Numpy)
    • Definition of ndims_params and ndim_supp is deprecated in favor of a numpy-like gufunc signature such as (),(p)->(p) for MultinomialRV.ndims_params and ndim_supp are now derived from the signature, and available only as properties of initialized RandomVariable Ops.
    • Explicit expand_dims are now introduced for parameters that are being broadcasted internally by the RandomVariable Op, like Elemwise and Blockwise do.

Bugfixes 🐛

  • Fix gradient of OpFromGraph with disconnected/related outputs by @ricardoV94 in #723
  • Fix bug in slogdet and expose it in linalg module by @theorashid in #807

Maintenance 🔧

  • Do not reject PatternNodeRewriter due unrelated multiple clients by @ricardoV94 in #789
  • Do not emmit confusing warning from FusionOptimizer by default by @ricardoV94 in #794
  • Harmonize Scan rewrite and tag names by @ricardoV94 in #793
  • Add types to functions in printing.py by @Armavica in #804

New Contributors

Full Changelog: rel-2.22.1...rel-2.23.0

rel-2.22.1

28 May 10:12

Choose a tag to compare

What's Changed

Bugfixes 🐛

  • Fix numba AdvancedIncSubtensor1 with broadcasted values by @ricardoV94 in #757
  • Allow fill_sink rewrite to accomodate changes in broadcastability by @ricardoV94 in #785

Maintenance 🔧

Full Changelog: rel-2.22.0...rel-2.22.1

rel-2.22.0

22 May 12:13

Choose a tag to compare

What's Changed

Major Changes 🛠

Bugfixes 🐛

  • Fix local_fill_sink rewrite for multiple output Elemwise Ops by @ricardoV94 in #773

Maintenance 🔧

  • Fix Choice and Permutation not respecting the RandomVariable contract by @ricardoV94 in #771
  • Inline static size inputs in JAX implementation of RandomVariables by @ricardoV94 in #774

Full Changelog: rel-2.21.0...rel-2.22.0

rel-2.21.0

13 May 20:18

Choose a tag to compare

What's Changed

Major Changes 🛠

  • Remove TopkOp by @mory91 in #686
  • Change behavior of helper set/inc to act on an indexed variable directly by @ricardoV94 in #730

New Features 🎉

Bugfixes 🐛

  • Ensure that gcc path is only added once to DLL search path by @maresb in #678
  • Only invoke config.cxx if non-empty by @mark-thm in #704
  • Fix broadcasting bug in vectorization of RandomVariables by @ricardoV94 in #738
  • Fix scan_checkpoints with sequences by @ricardoV94 in #754
  • Fix implementation of several RandomVariables in JAX backend by @ricardoV94 in #767

Documentation 📖

  • Update example in "Adding JAX and Numba support for Ops" by @HangenYuu in #687
  • Reconcile environment for development and docs building by @HangenYuu in #717

Maintenance 🔧

New Contributors

Full Changelog: rel-2.20.0...rel-2.21.0

rel-2.20.0

28 Mar 17:20

Choose a tag to compare

What's Changed

Major Changes 🛠

  • Allow defining an OpFromGraph from constant and shared inputs by @ricardoV94 in #676
  • Make Constant and Shared variables subclasses of the respective Variables by @ricardoV94 in #628
  • Drop Python 3.9 by @Armavica in #682

New Features 🎉

Bugfixes 🐛

  • Handle implicit broadcasting correctly in RandomVariable vectorization by @ricardoV94 in #664
  • Fix bug when broadcasting branches in local_useless_switch rewrite by @ricardoV94 in #681

Maintenance 🔧

New Contributors

Full Changelog: rel-2.19.0...rel-2.20.0

rel-2.19.0

09 Mar 19:55
4ee3588

Choose a tag to compare

What's Changed

Major Changes 🛠

New Features 🎉

Bugfixes 🐛

  • Fix tensordot implementation by @lucianopaz in #607
  • Do not change global config flag in printing test by @ricardoV94 in #602
  • Replace usage of sys.stdout.encoding with sys.getdefaultencoding() by @t-kalinowski in #617
  • Prevent local_sum_make_vector from introducing forbidden float64 by @tvwenger in #659

Documentation 📖

Maintenance 🔧

  • Loosen versioneer version requirement from exact to min version by @carlsmedstad in #593

New Contributors

Full Changelog: rel-2.18.6...rel-2.19.0

rel-2.18.6

12 Jan 13:30

Choose a tag to compare

What's Changed

New Features 🎉

Bugfixes 🐛

  • Remove incorrect solve usage in psd_solve_with_chol rewrite by @jessegrabowski in #575
  • Fix vectorize_graph bug when replacements were provided for only some outputs of a node by @ricardoV94 in #570
  • Don't store fortran objects in ScipyGer tag by @lucianopaz in #574
  • Fix bug in storage_input alignment of the JAX backend by @ricardoV94 in #587

Full Changelog: rel-2.18.5...rel-2.18.6

rel-2.18.5

02 Jan 14:17

Choose a tag to compare

What's Changed

New Features 🎉

  • Add rewrite for matmul when only one of the inputs has batched dimensions by @ricardoV94 in #558
  • Implement betaincinv and gammainc[c]inv functions by @amyoshino in #502

Bugfixes 🐛

  • Fix bug where ShapeFeature would create circular shape graph by @ricardoV94 in #566

Documentation 📖

New Contributors

Full Changelog: rel-2.18.4...rel-2.18.5

rel-2.18.4

15 Dec 09:33

Choose a tag to compare

What's Changed

New Features 🎉

Bugfixes 🐛

  • Do not generate C code for BatchedDot when BLAS flags are missing by @ricardoV94 in #550

Maintenance 🔧

  • Add aliases for arithmetic inequality function equivalents in NumPy by @lmmx in #533

New Contributors

  • @lmmx made their first contribution in #533

Full Changelog: rel-2.18.3...rel-2.18.4

rel-2.18.3

11 Dec 22:14
89fe939

Choose a tag to compare

What's Changed

New Features 🎉

Bugfixes 🐛

Documentation 📖

Full Changelog: rel-2.18.2...rel-2.18.3