Releases: JuliaDiff/DifferentiationInterface.jl
DifferentiationInterface-v0.5.10
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
- CompatHelper: add new compat entry for FiniteDifferences in [weakdeps] at version 0.12 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #368
- CompatHelper: add new compat entry for Flux in [weakdeps] at version 0.14 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #367
- Fix Flux compat bound by @gdalle in #369
- Smarter symmetric decompression by @gdalle in #370
- Debug Flux tests by @gdalle in #371
- Fix size-1 Jacobian with Enzyme by @gdalle in #374
- Handle closures with Enzyme by @gdalle in #375
- Relax DocStringExtensions compat entries by @adrhill in #379
- Keep tests in same env by @gdalle in #381
- Better handling of
AutoEnzyme(constant_function=false)
by @gdalle in #382 - Put some Enzyme stuff in utils by @gdalle in #384
- Test ForwardDiff over ReverseDiff by @gdalle in #386
- ForwardDiff over anything - prepare inner gradient for HVP by @gdalle in #385
- Update Compat's compat by @gdalle in #389
- Bump SparseConnectivityTracer compat to
v0.6
by @adrhill in #392 - Don't test on 'lts' and 'pre' for draft PRs by @gdalle in #391
- Add Lux tests by @gdalle in #372
- Revert handling of
AutoEnzyme(; constant_function)
by @gdalle in #394 - Bump DI version to 0.5.10 by @gdalle in #395
Full Changelog: DifferentiationInterface-v0.5.9...DifferentiationInterface-v0.5.10
DifferentiationInterface-v0.5.9
What's Changed
- Weird array test scenarios in DIT extensions by @gdalle in #359
- Put test dependencies in individual projects by @gdalle in #361
- CompatHelper: add new compat entry for PackageExtensionCompat at version 1 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #362
- Use dy=true for gradient (smallest possible 1) by @gdalle in #363
- First test scenarios for Flux gradients by @nialamarcotte in #352
- Make Flux scenarios private in DIT by @gdalle in #364
- Bump DI to v0.5.9 by @gdalle in #365
New Contributors
- @nialamarcotte made their first contribution in #352
Full Changelog: DifferentiationInterface-v0.5.8...DifferentiationInterface-v0.5.9
DifferentiationInterface-v0.5.8
What's Changed
- Update citation and backend list by @gdalle in #342
- Add Enzyme performance warning by @gdalle in #344
- Update operator doc strings by @adrhill in #347
- Use new ReverseDiff compile type parameter by @niklasschmitz in #351
- Restructure tests by @gdalle in #354
- Fix tag construction in ForwardDiff by @gdalle in #357
- Bump DI version to 0.5.8 by @gdalle in #358
New Contributors
- @niklasschmitz made their first contribution in #351
Full Changelog: DifferentiationInterface-v0.5.7...DifferentiationInterface-v0.5.8
DifferentiationInterface-v0.5.7
What's Changed
Full Changelog: DifferentiationInterface-v0.5.6...DifferentiationInterface-v0.5.7
DifferentiationInterfaceTest-v0.5.0
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
- Replace closures with callable structs in second order by @gdalle in #315
- Add dev guide to docs by @gdalle in #317
- Rename p to dg for Hessian-vector product by @gdalle in #318
- Update CITATION by @adrhill in #322
- Revamp test scenarios by @gdalle in #323
- Batched pushforward, pullback and hvp by @gdalle in #320
- Update SCT compat in DIT by @gdalle in #327
- Batched ForwardDiff pushforward by @gdalle in #328
- Batched HVP by @gdalle in #330
- Test batched operators by @gdalle in #331
- Remove custom printing by @gdalle in #332
- Fix backend display in docs by @gdalle in #333
- Better seed handling in Jacobian and Hessian by @gdalle in #334
- Fix DifferentiationInterfaceTest tutorial by @gdalle in #335
- Bump versions by @gdalle in #336
- Improve type stability of Jacobians and Hessian, fix test scenarios by @gdalle in #337
Full Changelog: DifferentiationInterfaceTest-v0.4.4...DifferentiationInterfaceTest-v0.5.0
DifferentiationInterface-v0.5.6
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
- Replace closures with callable structs in second order by @gdalle in #315
- Add dev guide to docs by @gdalle in #317
- Rename p to dg for Hessian-vector product by @gdalle in #318
- Update CITATION by @adrhill in #322
- Revamp test scenarios by @gdalle in #323
- Batched pushforward, pullback and hvp by @gdalle in #320
- Update SCT compat in DIT by @gdalle in #327
- Batched ForwardDiff pushforward by @gdalle in #328
- Batched HVP by @gdalle in #330
- Test batched operators by @gdalle in #331
- Remove custom printing by @gdalle in #332
- Fix backend display in docs by @gdalle in #333
- Better seed handling in Jacobian and Hessian by @gdalle in #334
- Fix DifferentiationInterfaceTest tutorial by @gdalle in #335
- Bump versions by @gdalle in #336
- Improve type stability of Jacobians and Hessian, fix test scenarios by @gdalle in #337
Full Changelog: DifferentiationInterface-v0.5.5...DifferentiationInterface-v0.5.6
DifferentiationInterfaceTest-v0.4.4
DifferentiationInterface-v0.5.5
DifferentiationInterfaceTest-v0.4.3
What's Changed
- Better preparation for second order with single backend by @gdalle in #287
- Bump DI version to 0.5.2 by @gdalle in #288
- Fix DIT test badge by @gdalle in #289
- Put backend tests into folders by @gdalle in #292
- Fix backend printing by @gdalle in #294
- Remove Symbolics sparsity detector by @gdalle in #295
- Add DenseSparsityDetector by @gdalle in #297
- Update fallback for mutating second-order operators by @gdalle in #298
- Remove last remnants of SymbolicsSparsityDetector by @gdalle in #301
- Operators that combine first and second order by @gdalle in #300
- Make Zygote extension depend on ForwardDiff too by @gdalle in #303
- Measure code coverage for test folder too by @gdalle in #304
- Test on 1.11 by @gdalle in #302
- Implement
value_gradient_and_hessian
by @gdalle in #305 - Fix docs typo by @gdalle in #306
- Bump DI compat in DIT by @gdalle in #308
Full Changelog: DifferentiationInterfaceTest-v0.4.2...DifferentiationInterfaceTest-v0.4.3
DifferentiationInterface-v0.5.4
What's Changed
- Update fallback for mutating second-order operators by @gdalle in #298
- Remove last remnants of SymbolicsSparsityDetector by @gdalle in #301
- Operators that combine first and second order by @gdalle in #300
- Make Zygote extension depend on ForwardDiff too by @gdalle in #303
- Measure code coverage for test folder too by @gdalle in #304
- Test on 1.11 by @gdalle in #302
- Implement
value_gradient_and_hessian
by @gdalle in #305 - Fix docs typo by @gdalle in #306
- Bump DI compat in DIT by @gdalle in #308
Full Changelog: DifferentiationInterface-v0.5.3...DifferentiationInterface-v0.5.4