DifferentiationInterface.jl

An interface to various automatic differentiation backends in Julia.

MIT License

Stars
103
DifferentiationInterface.jl - DifferentiationInterface-v0.5.10 Latest Release

Published by gdalle 3 months ago

TLDR

  • Improvements in Hessian performance with SecondOrder(AutoForwardDiff(), AutoReverseDiff())
  • Some behind-the-scenes work to enable differentiation of more generic structs, with the first tests for Flux and Lux neural nets (not part of API guarantees)

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.9...DifferentiationInterface-v0.5.10

DifferentiationInterface.jl - DifferentiationInterface-v0.5.9

Published by gdalle 3 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.8...DifferentiationInterface-v0.5.9

DifferentiationInterface.jl - DifferentiationInterface-v0.5.8

Published by gdalle 3 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.7...DifferentiationInterface-v0.5.8

DifferentiationInterface.jl - DifferentiationInterface-v0.5.6

Published by gdalle 4 months ago

TLDR

A lot of internal changes to allow for batched mode pushforward, pullback and hvp (propagating several seeds at once) in #320 and other PRs. The end result is that jacobian and hessian should be faster for the backends that support it, in both dense and sparse settings.

At the moment, batched mode is not public API, and only works with ForwardDiff (by storing several Partials in a Dual number), but I plan to add Enzyme soon (leveraging BatchDuplicated). When I say "not public API", I mean that users will reap the benefits by default when they call jacobian or hessian, but shouldn't rely on the lower-level primitives pushforward, pullback and hvp to work in batched mode (this behavior is not documented anyway).

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.5...DifferentiationInterface-v0.5.6

DifferentiationInterface.jl - DifferentiationInterfaceTest-v0.5.0

Published by gdalle 4 months ago

TLDR

Breaking changes to the Scenario API in #323. The constructors now require more data, the ref_backend has (temporarily?) disappeared for test_differentiation, and benchmark_differentiation directly returns a DataFrame.

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.4...DifferentiationInterfaceTest-v0.5.0

DifferentiationInterface.jl - DifferentiationInterfaceTest-v0.4.4

Published by gdalle 5 months ago

DifferentiationInterface.jl - DifferentiationInterface-v0.5.5

Published by gdalle 5 months ago

DifferentiationInterface.jl - DifferentiationInterfaceTest-v0.4.3

Published by gdalle 5 months ago

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.2...DifferentiationInterfaceTest-v0.4.3

DifferentiationInterface.jl - DifferentiationInterface-v0.5.4

Published by gdalle 5 months ago

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.3...DifferentiationInterface-v0.5.4

DifferentiationInterface.jl - DifferentiationInterface-v0.5.2

Published by gdalle 5 months ago

DifferentiationInterface.jl - DifferentiationInterface-v0.5.1

Published by gdalle 5 months ago

DifferentiationInterface.jl - DifferentiationInterfaceTest-v0.4.2

Published by gdalle 5 months ago

DifferentiationInterface.jl - DifferentiationInterfaceTest-v0.4.1

Published by gdalle 5 months ago

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.0...DifferentiationInterfaceTest-v0.4.1

DifferentiationInterface.jl - DifferentiationInterface-v0.5.0

Published by gdalle 5 months ago

DifferentiationInterface.jl - DifferentiationInterface-v0.4.1

Published by gdalle 5 months ago

What's Changed

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.4.0...DifferentiationInterface-v0.4.1

DifferentiationInterface.jl - DifferentiationInterfaceTest-v0.4.0

Published by gdalle 5 months ago

Breaking

What's Changed

New Contributors

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.3.0...DifferentiationInterfaceTest-v0.4.0

DifferentiationInterface.jl - DifferentiationInterface-v0.4.0

Published by gdalle 5 months ago

Breaking

What's Changed

New Contributors

Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.3.4...DifferentiationInterface-v0.4.0

Package Rankings
Top 24.13% on Juliahub.com
Badges
Extracted from project README
Build Status Coverage Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages DOI Stable Dev Stable Dev