Changelog

Version 0.8

New features

  • Added Broyden algorithm to solve non linear root equations, by Zaccharie Ramzi.

Bug fixes and enhancements

  • Fixed “LBFGSB produces NaN for certain conditions”, by Vincent Roulet.

  • Better layout for notebook gallery, by Fabian Pedregosa.

  • Added support for complex numbers in nonlinear conjugate gradient, by Gregor Thalhammer.

  • Added support for complex numbers in LBFGS and zoom line search, by Gregor Thalhammer.

  • Various LBFGS improvements, by Vincent Roulet.

  • Completely revamped zoom linesearch, by Vincent Roulet.

  • Added continuous integration for python 3.11, fixed typing extension issue, by Vincent Roulet.

  • Added number of function/grad/prox/etc… evaluation for various solvers, by Zaccharie Ramzi.

  • Fixed implicit differentiation in LBFGSB, by Nathan Simpson.

  • Ensure weak-type consistency, by Mathieu Blondel.

  • Extend convenience API for QP + doc, by Louis Bethune.

  • Add interpolation explanations for Polyak/Armijo API doc, by Louis Bethune.

  • Support has_aux in AndersonAcceleration, by Louis Bethune.

  • Drop Python 3.7 support, by Mathieu Blondel.

  • Fixed typos in perturbation docs, by Guillaume Dalle.

  • Fixed pytree support in tree_inf_norm, by Emily Fertig.

  • Fixed NaN handling in LBFGSB, by Srinivas Vasudevan.

  • Use jnp.ndarray instead of jnp.array, by Peter Hawkins.

Contributors

Louis Bethune, Emily Fertig, Fabian Pedregosa, Gregor Thalhammer-Thurner, Guillaume Dalle, Mathieu Blondel, Nathan Simpson, Peter Hawkins, Srinivas Vasudevan, Vincent Roulet, Zaccharie Ramzi.

Version 0.7

New features

Bug fixes and enhancements

  • Allow to pass a function as value_and_grad option, by Chansoo Lee.

  • Fixed imaml tutorial (speed and correctness), by Zaccharie Ramzi.

  • Misc improvements in resnet_flax example, by Fabian Pedregosa.

  • Fixed prox to handle pytrees, by Vincent Roulet.

  • Added control variate to make_perturbed_argmax, by Lawrence Stewart.

  • Added inverse hessian approximation to the returned state, Aymeric Galan.

  • Avoid closing over dynamic jax tracers in the bisection solver, by Roy Frostig.

  • Follow pjit API changes, by Yash Katariya and Peter Hawkins.

  • Added isotonic module to documentation, by Mathieu Blondel.

Contributors

Aymeric Galan, Chansoo Lee, Emily Fertig, Fabian Pedregosa, Lawrence Stewart, Mathieu Blondel, Peter Hawkins, Quentin Berthet, Roy Frostig, Vincent Roulet, Yash Katariya, Zaccharie Ramzi.

Version 0.6

New features

  • Added new Hager-Zhang linesearch in LBFGS, by Srinivas Vasudevan (code review by Emily Fertig).

  • Added perceptron and hinge losses, by Quentin Berthet.

  • Added binary sparsemax loss, sparse_plus and sparse_sigmoid, by Vincent Roulet.

  • Added isotonic regression, by Michael Sander.

Bug fixes and enhancements

  • Added TPU support to notebooks, by Ayush Shridhar.

  • Allowed users to restart from a previous optimizer state in LBFGS, by Zaccharie Ramzi.

  • Added faster error computation in gradient descent algorithm, by Zaccharie Ramzi.

  • Got rid of extra function call in BFGS and LBFGS, by Zaccharie Ramzi.

  • Improved dtype consistency between input and output of update method, by Mathieu Blondel.

  • Added perturbed optimizers notebook and narrative documentation, by Quentin Berthet and Fabian Pedregosa.

  • Enabled auxiliary value returned by linesearch methods, by Zaccharie Ramzi.

  • Added distributed examples to the website, by Fabian Pedregosa.

  • Added Custom loop pjit example, by Felipe Llinares.

  • Fixed wrong latex in maml.ipynb, by Fabian Pedregosa.

  • Fixed bug in backtracking line search, by Srinivas Vasudevan (code review by Emily Fertig).

  • Added pylintrc to top level directory, by Fabian Pedregosa.

  • Corrected the condition function in LBFGS, by Zaccharie Ramzi.

  • Added custom loop pmap example, by Felipe Llinares.

  • Fixed pytree support in IterativeRefinement, by Louis Béthune.

  • Fixed has_aux support in ArmijoSGD, by Louis Béthune.

  • Documentation improvements, by Fabian Pedregosa and Mathieu Blondel.

Contributors

Ayush Shridhar, Fabian Pedregosa, Felipe Llinares, Louis Bethune, Mathieu Blondel, Michael Sander, Quentin Berthet, Srinivas Vasudevan, Vincent Roulet, Zaccharie Ramzi.

Version 0.5.5

New features

  • Added MAML example by Fabian Pedregosa based on initial code by Paul Vicol and Eric Jiang.

  • Added the possibility to stop LBFGS after a line search failure, by Zaccharie Ramzi.

  • Added gamma to LBFGS state, by Zaccharie Ramzi.

  • Added jaxopt.BFGS, by Mathieu Blondel.

  • Added value_and_grad option to all gradient-based solvers, by Mathieu Blondel.

  • Added Fenchel-Young loss, by Quentin Berthet.

  • Added projection_sparse_simplex, by Tianlin Liu.

Bug fixes and enhancements

  • Fixed missing args,kwargs in resnet example, by Louis Béthune.

  • Corrected the implicit diff examples, by Zaccharie Ramzi.

  • Small optimization in l2-regularized semi-dual OT, by Mathieu Blondel.

  • Numerical stability improvements in jaxopt.LevenbergMarquardt, by Amir Saadat.

  • Dtype consistency in LBFGS, by Alex Botev.

Deprecations

Contributors

Alex Botev, Amir Saadat, Fabian Pedregosa, Louis Béthune, Mathieu Blondel, Quentin Berthet, Tianlin Liu, Zaccharie Ramzi.

Version 0.5

New features

Bug fixes and enhancements

Contributors

Louis Béthune, Mathieu Blondel, Amélie Héliou, Keunhong Park, Fabian Pedregosa, pipme.

Version 0.4.3

New features

  • Added zoom line search in jaxopt.LBFGS, by Mathieu Blondel. It can be enabled with the linesearch="zoom" option.

Bug fixes and enhancements

  • Added support for quadratic polynomial fun in jaxopt.BoxOSQP and jaxopt.OSQP, by Louis Béthune.

  • Added a notebook for the dataset distillation example, by Amélie Héliou.

  • Fixed wrong links and deprecation warnings in notebooks, by Fabian Pedregosa.

  • Changed losses to avoid roundoff, by Jack Valmadre.

  • Fixed init_params bug in multiclass_svm example, by Louis Béthune.

Contributors

Louis Béthune, Mathieu Blondel, Amélie Héliou, Fabian Pedregosa, Jack Valmadre.

Version 0.4.2

Bug fixes and enhancements

Contributors

Mathieu Blondel.

Version 0.4.1

Bug fixes and enhancements

  • Improvements in jaxopt.LBFGS: fixed bug when using use_gamma=True, added stepsize option, strengthened tests, by Mathieu Blondel.

  • Fixed link in resnet notebook, by Fabian Pedregosa.

Contributors

Fabian Pedregosa, Mathieu Blondel.

Version 0.4

New features

Bug fixes and enhancements

  • Fixed solve_normal_cg when the linear operator is “nonsquare” (does not map to a space of same dimension), by Mathieu Blondel.

  • Fixed edge case in jaxopt.Bisection, by Mathieu Blondel.

  • Replaced deprecated tree_multimap with tree_map, by Fan Yang.

  • Added support for leaf cond pytrees in tree_where, by Felipe Llinares.

  • Added Python 3.10 support officially, by Jeppe Klitgaard.

  • Replaced deprecated tree_multimap with tree_map, by Fan Yang.

  • In scipy wrappers, converted pytree leaves to jax arrays to determine their shape/dtype, by Roy Frostig.

  • Converted the “Resnet” and “Adversarial Training” examples to notebooks, by Fabian Pedregosa.

Contributors

Amir Saadat, Fabian Pedregosa, Fan Yang, Felipe Llinares, Jeppe Klitgaard, Mathieu Blondel, Roy Frostig.

Version 0.3.1.

New features

  • Pjit-based example of data parallel training using Flax, by Felipe Llinares.

Bug fixes and enhancements

Contributors

Felipe Llinares, Fabian Pedregosa, Ian Williamson, Louis Béthune, Mathieu Blondel, Roy Frostig.

Version 0.3

New features

Bug fixes and enhancements

Contributors

Amir Saadat, Fabian Pedregosa, Geoffrey Négiar, Hyunsung Lee, Mathieu Blondel, Roy Frostig.

Version 0.2

New features

New examples

  • sphx_glr_auto_examples_deep_learning_flax_resnet.py

Bug fixes and enhancements

Deprecations

Contributors

Fabian Pedregosa, Felipe Llinares, Geoffrey Negiar, Louis Béthune, Mathieu Blondel, Vikas Sindhwani.

Version 0.1.1

New features

Bug fixes

  • Allow non-jittable proximity operators in jaxopt.ProximalGradient

  • Raise an exception if a quadratic program is infeasible or unbounded

Contributors

Fabian Pedregosa, Louis Bethune, Mathieu Blondel.

Version 0.1 (initial release)

Classes

Examples

Contributors

Fabian Pedregosa, Felipe Llinares, Louis Bethune, Marco Cuturi, Mathieu Blondel, Peter Hawkins, Quentin Berthet, Robert Gower, Roy Frostig, Ta-Chu Kao