Releases: astroautomata/PySR
v2.0.0a2
What's Changed
Core PySR / Backend
- Automated update to backend: v2.0.0-alpha.9 by @github-actions[bot] in #1132
- fix: torch export with constant arguments by @MilesCranmer in #1058
- fix: normalize DataFrame column spaces in predict by @MilesCranmerBot in #1136
- feat: raise friendly error when loss_function has elementwise signature by @MilesCranmerBot in #1138
- fix: warn on elementwise loss probe mismatch by @MilesCranmerBot in #1184
Backend changes from SymbolicRegression.jl v2.0.0-alpha.8 to v2.0.0-alpha.9
PySR v2.0.0a2 updates the Julia backend from SymbolicRegression.jl v2.0.0-alpha.8 to v2.0.0-alpha.9.
Backend release: https://github.com/MilesCranmer/SymbolicRegression.jl/releases/tag/v2.0.0-alpha.9
Full backend changelog: astroautomata/SymbolicRegression.jl@v2.0.0-alpha.8...v2.0.0-alpha.9
Backend functionality and compatibility
- merge: integrate PR #515 changes by @MilesCranmerBot in astroautomata/SymbolicRegression.jl#540
- Add SymbolicUtils v4 compatibility by @MilesCranmerBot in astroautomata/SymbolicRegression.jl#542
- Restore accidentally dropped Enzyme mention in docs by @wsmoses in astroautomata/SymbolicRegression.jl#537
- ci: allow-fail enzyme integration group by @MilesCranmerBot in astroautomata/SymbolicRegression.jl#544
Backend tests and CI
- Refactor test suite into projects by @MilesCranmer in astroautomata/SymbolicRegression.jl#524
- test: split up mlj/templates by @MilesCranmer in astroautomata/SymbolicRegression.jl#525
- style: update to formatter version 2 by @MilesCranmer in astroautomata/SymbolicRegression.jl#504
- chore(deps): bump actions/setup-node from 4 to 5 by @dependabot[bot] in astroautomata/SymbolicRegression.jl#503
- chore(deps): bump actions/setup-node from 5 to 6 by @dependabot[bot] in astroautomata/SymbolicRegression.jl#516
- chore(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in astroautomata/SymbolicRegression.jl#519
- chore(deps): bump actions/download-artifact from 5 to 6 by @dependabot[bot] in astroautomata/SymbolicRegression.jl#520
- chore(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in astroautomata/SymbolicRegression.jl#529
Backend documentation
- docs: add language picker by @MilesCranmer in astroautomata/SymbolicRegression.jl#512
- docs: generate favicon from logo by @MilesCranmer in astroautomata/SymbolicRegression.jl#513
Backend new contributors
- @MilesCranmerBot made their first contribution in astroautomata/SymbolicRegression.jl#540
Packaging / Release / Dependencies
- chore(deps): allow pandas <4.0.0 by @MilesCranmerBot in #1129
- ci: add release-please bootstrap for master by @MilesCranmerBot in #1162
- ci: publish PyPI from release-please on master by @MilesCranmerBot in #1169
- fix: keep release-please manifest on released prerelease by @MilesCranmerBot in #1185
- chore: prepare PySR 2.0.0a2 release by @MilesCranmer in #1189
CI / Testing / Automation
- Create slurm unit tests + refactor to docker buildx bake by @MilesCranmer in #1111
- ci: fix upper bound python for jax compat by @MilesCranmer in #1112
- ci: avoid dependabot-only failures in conda/docker by @MilesCranmerBot in #1130
- Make backend-update PR branches version-specific by @MilesCranmerBot in #1155
- fix: trigger CI for backend update PRs by @MilesCranmerBot in #1158
- ci: fix backend bump automation by @MilesCranmerBot in #1166
Documentation / Website / Papers
- Switch docs to vitepress by @MilesCranmer in #1056
- Paper PR workflow: sync/resize images to PySR_Docs by @MilesCranmerBot in #1118
- ci(papers): PNG output + alpha flatten + ~300KB target by @MilesCranmerBot in #1119
- fix(ci): paper-image bot updates PR comment + stable URLs by @MilesCranmerBot in #1120
- fix: relax papers.yml validator for PySR_Docs image URLs by @MilesCranmerBot in #1122
- Adding a recently published paper that used PySR by @paulomontero in #1098
- Add paper: Learning Microstructure in Active Matter by @luna026 in #1107
- Added Symbolic Regression for lithium-ion battery paper information by @anubhavkamal in #1074
- Update papers.yml (duplicate of #1148) by @MilesCranmerBot in #1156
- Added a paper to the research showcase page by @MilesCranmerBot in #1172
Dependency / Workflow Maintenance
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #1086
- chore(deps): bump peter-evans/create-pull-request from 7 to 8 by @dependabot[bot] in #1097
- chore(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #1099
- chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #1062
- chore(deps): bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #1147
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1039
New Contributors
- @paulomontero made their first contribution in #1098
- @luna026 made their first contribution in #1107
- @anubhavkamal made their first contribution in #1074
Full Changelog: v2.0.0a1...v2.0.0a2
v1.5.10
v2.0.0a1
This is an alpha release of v2.0.0. There will still be changes before the release of v2.0.0, likely including new hyperparameter defaults.
What's Changed
Major changes
Multiple features (update backend to 2.0) (#999)
This PR updates the backend to SymbolicRegression.jl 2.0.0-alpha.8 and exposes several major new features:
- N-ary operators: Support for operators with arbitrary arity (not just unary/binary)
- Added 3-arity operators:
fma(fused multiply-add),clamp, etc. - This can be used via a new
operatorsparameter dictionary:operators={1: ["sin"], 2: ["+", "*"], 3: ["clamp"]}
- Added 3-arity operators:
- Equation guesses: Pass initial equation guesses to guide the search using the
guessesparameter tofit- For example:
guesses=["sin(x0 * 2.1 - 0.5)", "x0 * 3.0 + x2"]provides two guesses - Control injection rate with
fraction_replaced_guesses
- For example:
- Advanced autodiff backends: Experimental support for Mooncake.jl and Enzyme.jl
- Enzyme.jl support via
autodiff_backend="Enzyme"(fragile/experimental) - Mooncake.jl (experimental - currently disabled pending upstream fix)
- Enzyme.jl support via
- Feature node mutation: New mutation operator that directly modifies which features are used
- Control mutation weight with
weight_mutate_feature
- Control mutation weight with
- Worker management:
worker_imports: specify Julia packages to import on workersworker_timeout: control timeout for worker processes
Automatic batching for big data (#1045)
Other changes
- docs: add vector expression example by @MilesCranmer in #1041
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #1008
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #1009
- ci: update Dockerfile image by @MilesCranmer in #1022
- test: update docker versions by @MilesCranmer in #1023
- chore(deps): bump actions/setup-python from 5 to 6 by @dependabot[bot] in #1027
- deps: update min python to 3.9 by @MilesCranmer in #1052
- deps: bump juliacall requirement by @dependabot[bot] in #1035
- chore(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #1049
- chore(deps): bump github/codeql-action from 3 to 4 by @dependabot[bot] in #1050
- chore(deps): bump actions/setup-python from 5 to 6 by @dependabot[bot] in #1051
- chore(deps): update beartype requirement from <0.22,>=0.19 to >=0.19,<0.23 by @dependabot[bot] in #1047
- chore: update pyjuliacall requirement in environment.yml by @MilesCranmer in #1054
Full Changelog: v1.5.9...v2.0.0a1
v1.5.9
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #853
- Fix type error in feature selection code by @MilesCranmer in #952
- chore(deps): update juliacall requirement from <0.9.26,>=0.9.24 to >=0.9.24,<0.9.27 by @dependabot[bot] in #980
Full Changelog: v1.5.8...v1.5.9
v1.5.8
What's Changed
- fix: compat with python 3.8 by removing beartype by @MilesCranmer in #935
- ci: update workflows to test 3.13 by @MilesCranmer in #929
- style: fix newline in warning by @MilesCranmer in #931
- ci: switch to codecov by @MilesCranmer in #932
- deps: fix local conda env versions by @MilesCranmer in #933
Full Changelog: v1.5.7...v1.5.8
v1.5.7
What's Changed
- Enable negative losses by @MilesCranmer in #928
- Recommend TemplateExpressionSpec over ParametricExpressionSpec @MilesCranmer in #920
- Fix multi-output template expressions by @MilesCranmer in #921
- build: switch to hatchling by @MilesCranmer in #888
- chore(deps): bump juliacall from 0.9.24 to 0.9.25 by @dependabot in #925
- fix: turn off double warning for ParametricExpressionSpec by @MilesCranmer in #930
Full Changelog: v1.5.6...v1.5.7
v1.5.6
What's Changed
- Added paper contribution and image by @manuel-morales-a in #824
- fix: pickling of inv by @MilesCranmer in #910
- Automated update to backend: v1.10.0 by @github-actions in #890
New Contributors
- @manuel-morales-a made their first contribution in #824
Full Changelog: v1.5.5...v1.5.6
v1.5.5
What's Changed
- fix: typing extensions dependency by @MilesCranmer in #885
Full Changelog: v1.5.4...v1.5.5
v1.5.4
v1.5.3
What's Changed
- fix: change sympy mappings ordering by @romanovzky in #868
New Contributors
- @romanovzky made their first contribution in #868
Full Changelog: v1.5.2...v1.5.3