Skip to content

Releases: MilesCranmer/PySR

v0.17.2

12 Mar 00:00
c1fd3fb
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.17.1...v0.17.2

v0.17.1

13 Feb 07:56
7946ec0
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.17.0...v0.17.1

v0.17.0

12 Feb 05:51
93a1cee
Compare
Choose a tag to compare

What's Changed

Detailed changes from #535

  • (BREAKING) Changed PyJulia with JuliaCall
    • Need to change eval -> seval
    • Manually converting to Vector when calling SymbolicRegression.jl functions (otherwise would get passed as PyList{Any}; see JuliaPy/PythonCall.jl#441)
    • Wrapped equation_search code with jl.PythonCall.GC.disable() to avoid multithreading-related segfaults (JuliaPy/PythonCall.jl#298)
    • Manually convert np.str_ to str before passing to variable_names, otherwise it becomes a PyArray and not a String (might be worth adding a workaround, it seems like PyJulia does this automatically)
  • (BREAKING) Julia is now installed automatically when you import pysr (via JuliaCall)
  • (BREAKING) The user no longer needs to run python -m pysr install. The install process is done by JuliaCall at import time.
    • Removed code related to pysr.install() and python -m pysr install because JuliaCall now handles this.
    • python -m pysr install will not give a warning and do nothing.
  • (BREAKING) Remove the feynman problems dataset. Didn't seem good to have a dataset within a library itself.
  • (BREAKING) Deprecated julia_project argument (ignored; no effect). The user now needs to set this up by customizing juliapkg.json. See updated documentation for instructions.
  • (BREAKING) Switch from python -m pysr.test [test] to python -m pysr test [test].
  • Switches to pyproject.toml for building rather than setup.py. However, setup.py install should still work.
  • Dependencies are now managed by pyjuliapkg rather than the custom code we made. Simplifies things a lot!
  • Rather than storing the raw julia variables in PySRRegressor, I am now storing a serialized version of them. This means you can now pickle the search state and warm-start the search from a file, in another Python process!
    • Not breaking! Because self.raw_julia_state_ will deserialize it automatically for you
  • SymbolicRegression is now available to import from PySR:
from pysr import SymbolicRegression as SR
x1 = SR.Node(feature=1)  # Create expressions manually
  • SymbolicRegression options are accessible in <model>.julia_options_ (generated from a serialized format for pickle safety) so that the user can call a variety of functions in SymbolicRegression.jl directly.
  • Deprecated various kwargs to match SymbolicRegression.jl (old names will still work, so this is not breaking):
    • ncyclesperiteration => ncycles_per_iteration
    • loss => elementwise_loss
    • full_objective => loss_function
  • Fixes Jupyter printing by automatically loading the juliacall.ipython extension at import time
  • Adds Zygote.jl to environment by default
  • Does unittesting on an example Jupyter notebook

Full Changelog: v0.16.9...v0.17.0

v0.16.9

05 Jan 03:25
64a0944
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.16.8...v0.16.9

v0.16.8

31 Dec 16:11
6305e6e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.16.7...v0.16.8

v0.16.7

31 Dec 03:09
f5811bc
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.16.6...v0.16.7

v0.16.6

24 Dec 06:46
5bf2e55
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.16.5...v0.16.6

v0.16.5

14 Dec 18:47
6ff4b77
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.16.4...v0.16.5

v0.16.4

13 Dec 08:46
d39c0a6
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.16.3...v0.16.4

v0.16.3

21 Aug 00:29
af6294e
Compare
Choose a tag to compare

What's Changed

  • Automated update to backend: v0.22.4 by @MilesCranmer in #413
    • Fixes world age issue

Full Changelog: v0.16.2...v0.16.3