Brian Chen
Brian Chen
Typed comprehensions lower to `getindex(::Type, ::Generator)`, I believe? Never seen that come up before so I'm not surprised by the error.
I've folded https://github.com/FluxML/Zygote.jl/issues/1223 into this issue and updated the title accordingly. There's no reason for us not to track all these *cat methods in one place.
This issue arises because we don't do per-element tracking of implicit gradients for arrays of arrays. This is currently done [for tuples](https://github.com/FluxML/Zygote.jl/blob/master/src/lib/lib.jl#L119), so it may be possible to use a...
The alternative we're referring to with explicit params is neither of those, but this: ```julia function loss(x, p) y = x[1] + p sum(abs2, y .- 1) end dx, dp...
Zygote uses a completely different mechanism for its AD, so I doubt ReverseDiff's approach would be directly applicable (if at all).
The former. I don't believe there is anything `@adjoint` can do that `rrule(::ZygoteRuleConfig, ...)` can't. > Or to make `@adjoint` fallback to `rrule`? Zygote already does this. The order is...
I suspect a `@non_differentiable isposdef(...)` in ChainRules would be sufficient to resolve this. Certainly there's no point for AD to dig into that function.
At least on nightly, the test for `logdet(cholesky(Hermitian(...)))` is still failing: https://github.com/FluxML/Zygote.jl/runs/6971643805?check_suite_focus=true
Nested reverse mode is slow in general and doubly slow in Zygote. https://discourse.julialang.org/t/gradient-of-gradient-in-zygote/52685/3 is a bit lengthy, but it goes into all the gory details of why this is a...
IR dump for debugging: ```julia julia> adj = @code_adjoint f(1.2); julia> adj.primal 1: (%3, %4 :: Zygote.Context, %1, %2) %5 = Zygote._pullback(%4, Base.vect, %2) %6 = Base.getindex(%5, 1) %7 =...