Releases: pymc-devs/pytensor
Releases · pymc-devs/pytensor
rel-2.36.1
What's Changed
New Features 🎉
- Added PyTorch clip dispatch by @fonnesbeck in #1797
- Implement pack/unpack helpers by @jessegrabowski in #1578
Bugfixes 🐛
- Allow numba cache path to create parent directory by @ricardoV94 in #1798
- Fix output ordering in new Scan API by @ricardoV94 in #1799
Maintenance 🔧
- Revert accidental structured sparse changes by @ricardoV94 in #1800
Full Changelog: rel-2.36.0...rel-2.36.1
rel-2.36.0
What's Changed
Major Changes 🛠
- Support Python 3.14 by @Armavica in #1661
- Numba full backend support and required dependency by @ricardoV94 in #811
- Start deprecating shared updates functionality in Scan by @ricardoV94 in #1704
- Reorganize the
sparsemodule by @jessegrabowski in #1674 - Remove tensor/io.py by @ricardoV94 in #1766
- Remove InRange scalar Op by @Copilot in #1699
New Features 🎉
- Add more MLX dispatches by @jessegrabowski in #1684
- Add linalg Ops to MLX backend by @cetagostini in #1700
- Reliable caching of Graphs and individual Ops in numba backend by @ricardoV94 in #1637
- Support TypedList on Numba backend by @ricardoV94 in #1745
- Implement numba dispatch for ScalarLoop by @ricardoV94 in #1445
- Implement
Convolve2DOp by @jessegrabowski in #1397 - Numba AdvancedIndexing: Complete support for integer advanced indexing by @ricardoV94 in #1778
- Implement Scan based
filterhelper by @emekaokoli19 in #1717 - Support Scan with MIT-MOT in JAX backend by @ricardoV94 in #1651
Bugfixes 🐛
- Ignore
axisargument in numbaCumOpwhen input is 1d by @jessegrabowski in #1691 - Fix pytensor_cache clear by @ricardoV94 in #1694
- Fix 0-sized CGemV with unitialized memory by @ricardoV94 in #1719
- Handle non-constant NoneTypeT variables by @ricardoV94 in #1728
- Fix numba cache bugs and suppress noisy warnings by @ricardoV94 in #1731
- Fix shape error formatting in C impl of Elemwise by @ricardoV94 in #1749
- Numba Pow: Fix failure with discrete integer exponents by @ricardoV94 in #1758
- Handle upcasting of scalar to vector arrays by scipy vector optimizers by @ricardoV94 in #1768
- Validate compatible linker in Scan Python/C backend by @ricardoV94 in #1757
- Numba and JAX Scan fixes by @ricardoV94 in #1754
- Handle F-order and arbitrary index ndim in numba UnravelIndex and RavelMultiIndex by @ricardoV94 in #1770
- Misc numba fixes by @ricardoV94 in #1771
- Numba Dot: Handle complex inputs by @ricardoV94 in #1776
- Numba RavelMultiIndex: Fix scalars with clip mode by @ricardoV94 in #1775
- Fix Elemwise inside OpFromGraph in numba mode by @ricardoV94 in #1774
- Avoid runtime broadcast error due to dot_to_mul rewrite by @ricardoV94 in #1783
- Optimize: Handle gradient wrt scalar inputs and guard against unsupported types by @ricardoV94 in #1784
- Numba CAReduce: respect acc_dtype by @ricardoV94 in #1773
- Fix
wrap_jaxwhen there is a mix of statically known and unknown shapes by @ricardoV94 in #1722
Documentation 📖
- Fix latex formatting in VJP autodiff example by @williambdean in #1726
Maintenance 🔧
- Rename sparse functions to match numpy array API by @jessegrabowski in #1663
- Remove
scalar_prefix from several Ops by @Copilot in #1683 - Add
__rtruediv__and__rfloordiv__to Scalar variables by @Copilot in #1701 - Fix Blockwise vmap dispatch for no batch dimensions by @cetagostini in #1705
- JITLinker improvements by @ricardoV94 in #1746
- Numba fallback to object mode in more cases by @ricardoV94 in #1747
- Remove
transfer_typeand default inplace Elemwise Ops by @ricardoV94 in #1752 - Speedup RNG copy in non-mutable RVs by @emekaokoli19 in #1721
- Sort and Argsort: Check axis are integers by @ricardoV94 in #1769
- Numba do not cache inplace list ops by @ricardoV94 in #1767
- Handle mixed input dtypes and empty size in numba lapack functions by @ricardoV94 in #1764
- Rewrite concatenate([x, x]) as tile by @tchan102 in #1714
New Contributors
- @cetagostini made their first contribution in #1700
- @tchan102 made their first contribution in #1714
- @emekaokoli19 made their first contribution in #1717
- @Mr-Imperium made their first contribution in #1748
Full Changelog: rel-2.35.1...rel-2.36.0
rel-2.35.1
What's Changed
Major Changes 🛠
- Handle
axis=Nonesymbolically instead of within CumOp by @Copilot in #1574
New Features 🎉
- Refactor
Expmand add jax dispatch by @jessegrabowski in #1668
Bugfixes 🐛
- Fix C-cache bug related to input order of nominal variables by @ricardoV94 in #1673
- Don't return tuple from
jax.scipy.linalg.qrwhenmode = 'r'by @jessegrabowski in #1682
Maintenance 🔧
- Move shared HStack and VStack methods to Stack superclass by @jessegrabowski in #1662
- Fix MKL BLAS detection with renamed libiomp5md.lib by @maresb in #1667
- Cleanup numba dispatches by @ricardoV94 in #1648
- Use incsubtesor in gradient of repeat by @ricardoV94 in #1621
- Suppress numpy warnings in python implementation of Elemwise by @ricardoV94 in #1681
Full Changelog: rel-2.35.0...rel-2.35.1
rel-2.35.0
What's Changed
Major Changes 🛠
- Drop Python 3.10 and NumPy < 2 by @Armavica in #1253
- Remove
sparse.sandboxby @jessegrabowski in #1664
New Features 🎉
- Add MLX backend by @williambdean in #1365
Bugfixes 🐛
- Fix rewrite weakref leak by @ricardoV94 in #1660
Documentation 📖
Maintenance 🔧
- Use LAPACK functions for
cho_solve,lu_factor,solve_triangularby @Fyrebright in #1605
Full Changelog: rel-2.34.0...rel-2.35.0
rel-2.34.0
What's Changed
Major Changes 🛠
- Implement
wrap_jaxand renameas_optowrap_pyby @aseyboldt in #1614
New Features 🎉
Bugfixes 🐛
- Fix
flipto handle negative axis correctly by @Copilot in #1628 - Fix FusionOptimizer bug by @ricardoV94 in #1630
New Contributors
- @Copilot made their first contribution in #1628
Full Changelog: rel-2.33.0...rel-2.34.0
rel-2.33.0
What's Changed
Major Changes 🛠
- Remove unused graph rewriting functionality by @ricardoV94 in #1595
- Speedup graph traversal functions by @ricardoV94 in #1596
New Features 🎉
- Implement
OpPatternfor more flexibletracksandPatternNodeRewriterby @ricardoV94 in #1594
Bugfixes 🐛
- Fix failure with narrowing of ssize_t to int in macos by @ricardoV94 in #1602
Documentation 📖
- Add gallery notebook on vector jacobian products by @ricardoV94 in #1544
- Normalizing Flows in PyTensor Notebook by @juanitorduz in #1588
- Add intro notebook from workshop by @juanitorduz in #1585
Maintenance 🔧
- Add rewrite for log(sqrt(x)) by @williambdean in #1555
- Tweak rewrites in
infer_shapedataset by @ricardoV94 in #1563 - Add rewrite for
softplus(log(x)) -> log1p(x)by @lciti in #1452 - Implement static shape inference for AdvancedSubtensor by @ricardoV94 in #1566
- Rewrite more cases of Blockwise IncSubtensor by @ricardoV94 in #1560
- Skip scan rewrites if there is no Scan Op in the graph by @ricardoV94 in #1600
- Add
compiler_verboseconfig flag by @ricardoV94 in #1520 - Use vectorized jacobian in Minimize Op by @Michal-Novomestsky in #1582
- Speedup FusionOptimizer by @ricardoV94 in #1615
New Contributors
- @jorenham made their first contribution in #1597
- @Michal-Novomestsky made their first contribution in #1582
Full Changelog: rel-2.32.0...rel-2.33.0
rel-2.32.0
What's Changed
Major Changes 🛠
- Improve dot lift rewrites by @ricardoV94 in #1471
- Change Dot Op to only accept matrix inputs by @ricardoV94 in #1538
New Features 🎉
- Refactor and update QR Op by @jessegrabowski in #1518
- Optimize matmuls involving block diagonal matrices by @jessegrabowski in #1493
Bugfixes 🐛
- Fix
CheckAndRaiseOp C implementation by @ricardoV94 in #1521 - Fix mean, var and std for XTensorVariables by @ricardoV94 in #1533
- Fix AdvancedIncSubtensor1 C-compilation with empty indices by @ricardoV94 in #1551
Documentation 📖
- Fix missing xtensor.type cross-reference targets by @OriolAbril in #1530
Maintenance 🔧
- Converts negative constant axis to positive if present in
Join(COp)by @PabloRoque in #1527 - Preserve static shape information in
block_diagby @jessegrabowski in #1529 - Get rid of pydot-ng because it's deprecated since 7 years by @maresb in #1534
- Canonicalize subtensor negative integer indices by @ricardoV94 in #1541
- Use stricter numerical tolerance in rewrites and allow casting in
PatternNodeRewriterby @lciti in #1526
New Contributors
- @PabloRoque made their first contribution in #1527
Full Changelog: rel-2.31.7...rel-2.32.0
rel-2.31.7
What's Changed
New Features 🎉
- Implement
full_like,ones_like, andzeros_likefor XTensorVariables by @ricardoV94 in #1519
Documentation 📖
- Add xtensor docs by @ricardoV94 in #1504
Maintenance 🔧
- Extend C implementation of psi to support negative inputs by @Abhinav-Khot in #1523
- Make convolve mode symbolic to avoid unnecessary large convolution in gradient graph by @ricardoV94 in #1522
Full Changelog: rel-2.31.6...rel-2.31.7
rel-2.31.6
What's Changed
New Features 🎉
- Implement broadcast for XtensorVariables by @ricardoV94 in #1513
Bugfixes 🐛
- Do not skip validation between consecutive Elemwise inplace replacements by @ricardoV94 in #1494
- Fix shape errors in
scalar_solve_to_divisionrewrite by @ricardoV94 in #1516
Full Changelog: rel-2.31.5...rel-2.31.6
rel-2.31.5
What's Changed
New Features 🎉
- Implement vectorized jacobian and allow arbitrary expression shapes by @ricardoV94 in #1228
- Rewrite scalar solve to division by @jessegrabowski in #1453
Bugfixes 🐛
- Fix xtensor
(...,)Transpose by @ricardoV94 in #1500
Maintenance 🔧
- Small fixups to xtensor type and XRV by @ricardoV94 in #1503
Full Changelog: rel-2.31.4...rel-2.31.5