ChainRules.jl
ChainRules.jl copied to clipboard
forward and reverse mode automatic differentiation primitives for Julia Base + StdLibs
@dpsanders has just released [ReversePropagation.jl](https://github.com/dpsanders/ReversePropagation.jl) which is a tape-to-source scalar reverse mode AD using ChainRules. We have reverse depenency testing setup for Zygote, to make certain no changes to ChainRules...
The original function is more flexible: ```julia julia> sortslices(rand(2,2,2); dims=(1,2)); julia> rrule(sortslices, rand(2,2,2); dims=(1,2)); ERROR: TypeError: in keyword argument dims, expected Integer, got a value of type Tuple{Int64, Int64} Stacktrace:...
This was introduced with `@test_skip` in https://github.com/JuliaDiff/ChainRules.jl/pull/335 I think maybe we just forgot to debug and fix it. Not sure why it fails, could be a problem with ChainRulesTestUtils/FiniteDifferences.jl (I...
The rules for `accumulate` and `foldl` don't compute anything for the `init` keyword. This can lead to silently wrong gradients, which is bad. Maybe this is a bigger problem than...
From https://github.com/JuliaDiff/ForwardDiff.jl/issues/547, note that the rule for `norm` gives zero gradient at x=0. It might be preferable to pick something like a sub-gradient? ``` julia> using Zygote, ForwardDiff, LinearAlgebra julia>...
related to #515
Added a `rrule` for the qr deomposition. @sethaxen
Nice project, I like the test coverage of this package. Sorry for the long delay (see https://github.com/GiggleLiu/BackwardsLinalg.jl/issues/17). I tried multiple times to add the backward rules to ChainRules, but feeling...