Releases: pymc-devs/pytensor
Releases · pymc-devs/pytensor
Release list
rel-3.0.6
What's Changed
Bugfixes 🐛
- Avoid deep recursion in
OpFromGraph.infer_shape(backport frommain) by @ricardoV94 in c141306
Full Changelog: rel-3.0.5...rel-3.0.6
rel-3.0.5
What's Changed
Bugfixes 🐛
- Remove wrong IndexedElemwise shape loop branch by @ricardoV94 in #2203
- OpFromGraph: Fix input value - output type dependent collision by @ricardoV94 in #2206
- Fix stale output type bugs in rewrites by @ricardoV94 in #2204
Maintenance 🔧
- Add _vectorize_node dispatchers for sparse ops by @jaanerik in #2190
- More robust diagonal constant check by @jessegrabowski in #2173
- Rewrite det(inv(X)) → 1/det(X) by @alessandrogentili001 in #2102
- Numba sparse dot: use final precision in intermediate computations by @ricardoV94 in #2159
Full Changelog: rel-3.0.4...rel-3.0.5
rel-3.0.4
What's Changed
New Features 🎉
- Selection and permutation assumptions by @jessegrabowski in #2165
Bugfixes 🐛
- Fix FusionOptimizer walk_toposort use by @ricardoV94 in #2178
- Minimize: fix gradient with single >1D argument by @ricardoV94 in #2176
- Check None shape by type not identity in numba SpecifyShape dispatch by @jessegrabowski in #2191
- Fix local_subtensor_of_batch_dims when encountering stale broadcast types by @jaanerik in #2167
Maintenance 🔧
- Switch to augmented-matrix Frechet derivative for expm pullback by @jessegrabowski in #2162
- Add dispatches for Real Op by @jessegrabowski in #2016
- Faster convolve numba by @ricardoV94 in #2175
- Use out argument in more numba dispatches by @ricardoV94 in #2182
- Propagate triangularity through matrix transpose by @jessegrabowski in #2174
- Numba: fuse AdvancedSubtensor->Elemwise->AdvancedIncSubtensor by @ricardoV94 in #2015
Full Changelog: rel-3.0.3...rel-3.0.4
rel-3.0.3
What's Changed
New Features 🎉
- More rewrites for ExtractDiag by @jessegrabowski in #2045
- System for algebraic reasoning about linear alegbra by @jessegrabowski in #2032
- Add numba dispatch for expm by @jessegrabowski in #2148
Bugfixes 🐛
- Fix local_sqrt_sqr rewrite logic bug by @WHOIM1205 in #1952
- Do not duplicate outer inputs when inlining OFG by @ricardoV94 in #2147
- Fix fusion replacement ordering by @ricardoV94 in #2150
Maintenance 🔧
- Support single string dims in XTensorType by @williambdean in #2129
- Add @ (matmul) operator to XTensorVariable by @williambdean in #2128
- Make exceptions less verbose by default by @ricardoV94 in #1330
- Numba CAReduce: reorder loops based on strides by @ricardoV94 in #1961
- Stop subtensor merge bonanza by @ricardoV94 in #2098
- as_tensor_variable dispatch for range objects by @williambdean in #2141
- Normalize string dims across all xtensor paths by @williambdean in #2146
- Extend inv(A) @ b -> solve(A, b) to batched matmul by @ricardoV94 in #2157
- Add numba dispatch for SVD by @jessegrabowski in #2136
Full Changelog: rel-3.0.2...rel-3.0.3
rel-3.0.2
What's Changed
Bugfixes 🐛
- Fix Softmax handling of non-tensor inputs regression by @ricardoV94 in #2122
Full Changelog: rel-3.0.1...rel-3.0.2
rel-3.0.1
What's Changed
New Features 🎉
- Optimize solve of block_diag by @jessegrabowski in #2109
- Add custom jax jvp for solve_sylvester by @jessegrabowski in #2116
Maintenance 🔧
- Replace several Ops by OpFromGraph by @ricardoV94 in #2110
- Rewrite solve(matrix_inverse(X), b) → X @ b by @alessandrogentili001 in #2114
- Fix numba support of cython functions with ssize by @ricardoV94 in #2113
- Lazy scipy import by @ricardoV94 in #2112
Full Changelog: rel-3.0.0...rel-3.0.1
rel-3.0.0
What's Changed
Major Changes 🛠
- Make Numba the default linker by @ricardoV94 in #1862
- Remove test_value functionality by @ricardoV94 in #1972
- Reorganize compile module and remove deprecated functionality by @ricardoV94 in #1351
- Change user-facing random variable API by @ricardoV94 in #1707
- Cleanup root objects by @ricardoV94 in #1863
- Rename autodiff L_op and R_op methods to pull_back and push_forward by @ricardoV94 in #1983
- Reorganize linear algebra by @jessegrabowski in #2037
- XTensor module no longer experimental by @ricardoV94 in #2048
- Refactor advanced subtensor by @jaanerik in #1756
New Features 🎉
- Implement isfinite helper by @nirdesho6o in #1957
- Implement
richdebugprint format viafile="rich"by @williambdean in #2042 - Add xtensor.where as a method and root operation by @ricardoV94 in #1985
Bugfixes 🐛
- Make numba caching safe across internal name collisions by @ricardoV94 in #2051
- Python Scalar Pow: do not return complex values for fractional powers of negative floats by @vybhav72954 in #1945
- Fix scan_save_mem with 0 steps by @ricardoV94 in #1977
- Fix Scan higher order derivatives by @ricardoV94 in #1975
- Scan: Fix untraced_sit_sot when n_steps=0 by @ricardoV94 in #2001
- Fix issues with RNGs in Scan by @ricardoV94 in #2039
- Add empty input guards to numba linalg by @jessegrabowski in #2057
- Make input
output_gradsto OFG pullback function consistent at runtime by @jessegrabowski in #2065 - Fix error in local_reshape_to_dimshuffle by @ricardoV94 in #2107
- Improve Feature hook API and pickle round-trip by @jessegrabowski in #2099
Documentation 📖
- make scan dosctring render legibly by @elc45 in #1897
- Add examples to function and Function.copy docstrings by @alessandrogentili001 in #2046
- docs(tutorial): change stale alias at -> pt by @williambdean in #2068
Maintenance 🔧
- Einsum: Compatibility with newer numpy by @ricardoV94 in #1916
- Graph replace: Handle redundant replacements by @ricardoV94 in #1942
- Allow freezing of FunctionGraph for hashing by @jessegrabowski in #1908
- Validate that output_subset indices are within bounds in CVM by @WHOIM1205 in #1903
- Rewrites for consecutive advanced read-write operations by @ricardoV94 in #2061
- Better static shape inference in linalg.kron by @ayulockedin in #1898
- Remove complex objectmode in linalg Ops by @jessegrabowski in #2062
- Add pullback for chosolve by @jessegrabowski in #2066
- Update Eigh and Eigvalsh Ops by @jessegrabowski in #2059
- Do not include constant branches in minimization arguments by @ricardoV94 in #1959
- Inline constants and merge duplicate inputs in OptimizeOp by @ricardoV94 in #1934
- Remove Iv core Op in favor of Ive and add rewrite rule for log of it by @alessandrogentili001 in #1929
- Rewrite a / exp(b) -> a * exp(-b) by @jessegrabowski in #1965
- Scan: remove unused outputs by @ricardoV94 in #2067
- Scan: Inplace on untraced_sit_sot (like RNGs) by @ricardoV94 in #2003
- Convert unit buffer sit sot to untraced sit sot by @ricardoV94 in #2005
- Canonicalize JoinDims and SplitDims to simpler operations than reshape by @mengxingbw in #1847
- XTensorType: Add
values_eqandvalues_eq_approxby @ricardoV94 in #1914 - Allow complex inputs to numba linalg functions by @jessegrabowski in #1974
- Numba: Add several remaining sparse ops by @tomicapretto in #1896
- Add MLX dispatch for OpFromGraph by @jessegrabowski in #2012
- Add MLX dispatch for IfElse by @jessegrabowski in #2013
- MLX Elementwise and scalar dispatches by @jessegrabowski in #2007
- Add MLX dispatch for BatchedDot by @jessegrabowski in #2009
- Add einsum dispatch for mlx by @jessegrabowski in #2017
- Add MLX dispatch for Pad by @jessegrabowski in #2019
- More MLX linalg by @jessegrabowski in #2011
- Facilitate graph pattern matching by @ricardoV94 in #1786
- Add ScalarOp mathematical props by @jessegrabowski in #2053
- Remove errant dprint in local_lift_transpose_through_dot by @jessegrabowski in #2036
New Contributors
- @jaanerik made their first contribution in #1756
- @elc45 made their first contribution in #1897
- @alessandrogentili001 made their first contribution in #1929
- @nirdesho6o made their first contribution in #1957
- @vybhav72954 made their first contribution in #1945
- @mengxingbw made their first contribution in #1847
- @github-actions[bot] made their first contribution in #2076
Full Changelog: rel-2.38.0...rel-3.0.0
rel-2.38.3
What's Changed
Bugfixes 🐛
- Fix optimize gradient bug with repeated inputs by @ricardoV94 in #1933
- Fix scalar optimize gradient bug with repeated inputs by @ricardoV94 in #1958
- Fix numba compilation crashes from functions cached in fork processes by @ricardoV94 in #1992
- Fix numba caching in multiprocess contexts by @ricardoV94 in #2079
Maintenance 🔧
- Handle vectorization of Alloc nodes by @ricardoV94 in #1943
Full Changelog: rel-2.38.2...rel-2.38.3
rel-2.38.2
What's Changed
Maintenance 🔧
- Improve static shape of shaped xtensor Ops by @ricardoV94 in #1937
Full Changelog: rel-2.38.1...rel-2.38.2
rel-2.38.1
What's Changed
Bugfixes 🐛
- Validate that output_subset indices are within bounds in CVM by @WHOIM1205 in #1903
Documentation 📖
Maintenance 🔧
- Fix static shape inference in pt.linalg.kron and add regression test by @ayulockedin in #1898
- Implement vectorize for xtensor Dot by @ricardoV94 in #1915
- XTensorType: Add
values_eqandvalues_eq_approxby @ricardoV94 in #1914 - Einsum: Compatibility with newer numpy by @ricardoV94 in #1916
- Numba: Add several remaining sparse ops by @tomicapretto in #1896
New Contributors
- @jaanerik made their first contribution in #1756
- @ayulockedin made their first contribution in #1898
- @elc45 made their first contribution in #1897
Full Changelog: rel-2.38.0...rel-2.38.1