v0.6.0
PySR Version 0.6.0
Large changes:
- Exports to JAX, PyTorch, NumPy. All exports have a similar interface. JAX and PyTorch allow the equation parameters to be trained (e.g., as part of some differentiable model). Read https://pysr.readthedocs.io/en/latest/docs/options/#callable-exports-numpy-pytorch-jax for details. Thanks Patrick Kidger for the PyTorch export.
- Multi-output
y
input is allowed, and the backend will efficiently batch over each output. A list of dataframes is returned by pysr for these cases. Allbest_*
functions return a list as well. - BFGS optimizer introduced + more stable parameter search due to back tracking line search.
Smaller changes since 0.5.16:
- Expanded tests, coverage calculation for PySR
- Improved (pre-processing) feature selection with random forest
- New default parameters for search:
- annealing=False (no annealing works better with the new code. This is equivalent to alpha=infinity)
- useFrequency=True (deals with complexity in a smarter way)
- npopulations = 20
procs*4 - progress=True (show a progress bar)
- optimizer_algorithm="BFGS"
- optimizer_iterations=10
- optimize_probability=1
- binary_operators default = ["+", "-", "/", "*"]
- unary_operators default = []
- Warnings:
- Using maxsize > 40 will trigger a warning mentioning how it will be slow and use a lot of memory. Will mention to turn off
useFrequency
, and perhaps also usewarmupMaxsizeBy
.
- Using maxsize > 40 will trigger a warning mentioning how it will be slow and use a lot of memory. Will mention to turn off
- Deprecated nrestarts -> optimizer_nrestarts
- Printing fixed in Jupyter