Closed
Description
The use of params
within explicit-mode gradients has been broken by #2054 . Sadly there were no tests of this:
julia> m = (x=[1,2.0], y=[3.0]);
julia> gradient(m -> (sum(norm, Flux.params(m))), m)
((x = [0.4472135954999579, 0.8944271909999159], y = [1.0]),) # before, Flux@0.13.5
(nothing,) # after, Flux@0.13.6
julia> gradient(() -> (sum(norm, Flux.params(m))), Flux.params(m))
Grads(...)
julia> ans[m.x] # unchanged
2-element Vector{Float64}:
0.4472135954999579
0.8944271909999159
(This form really is very annoying. Suggestions are fine but required textboxes seem to be solving a problem we didn't have. Also, it seems to break links to issues, like #2054 above. Edited to delete the boilerplate.)