JuliaFirstOrder / ProximalAlgorithms.jl

Proximal algorithms for nonsmooth optimization in Julia
Other
130 stars 21 forks source link

Update gradient interface, support AbstractDifferentiation #90

Closed lostella closed 9 months ago

lostella commented 10 months ago
  1. Remove dependency on Zygote in favor of AbstractDifferentiation (#71, #80, cc @gdalle)
  2. Update the interface to gradient computation used by algorithms, see value_and_pullback (similar to AbstractDifferentiation value_and_pullback_function)
  3. Update stepsize backtracking routines, to only evaluate gradients at the end (made possible by the changes in 2.) speeding things up (need to benchmark this but it’s reasonable to expect some speedup)
  4. Update tests and documentation
  5. Add justfile (see just)

Work in progress, opening for feedback and to take a look at CI workflows.

TODOs

codecov[bot] commented 10 months ago

Codecov Report

Attention: 4 lines in your changes are missing coverage. Please review.

Comparison is base (4d07b28) 89.84% compared to head (fd98409) 89.03%.

:exclamation: Current head fd98409 differs from pull request most recent head 68a80a0. Consider uploading reports for the commit 68a80a0 to get more accurate results

Files Patch % Lines
src/algorithms/li_lin.jl 66.66% 2 Missing :warning:
src/algorithms/panoc.jl 75.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #90 +/- ## ========================================== - Coverage 89.84% 89.03% -0.81% ========================================== Files 21 20 -1 Lines 955 985 +30 ========================================== + Hits 858 877 +19 - Misses 97 108 +11 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.