You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
julia> Flux.update!(opt, model_e, grad_e)[2][1].weight # same update
131
+
julia> Flux.update!(opt_state, model_e, grad_e)[2][1].weight # same update
132
132
2×3 Matrix{Float64}:
133
133
1.060573.05.0
134
134
1.939434.06.0
@@ -142,11 +142,11 @@ In this case they are all identical, but there are some caveats, explored below.
142
142
143
143
Both Zygote and Tracker were written for Flux, and at present, Flux loads Zygote and exports `Zygote.gradient`, and calls this within `Flux.train!`. But apart from that, there is very little coupling between Flux and the automatic differentiation package.
144
144
145
-
This page has very brief notes on how all these packages compare, as a guide for anyone wanting to experiment with them. We stress "experiment" since Zygote is (at present) by far the best-tested.
145
+
This page has very brief notes on how all these packages compare, as a guide for anyone wanting to experiment with them. We stress "experiment" since Zygote is (at present) by far the best-tested. All notes are from February 2024,
@@ -317,7 +316,7 @@ This year's new attempt to build a simpler one?
317
316
318
317
Really `rrule_via_ad` is another mechanism, but only for 3 systems.
319
318
320
-
319
+
Sold as an attempt at unification, but its design of extensible `rrule`s turned out to be too closely tied to Zygote/Diffractor style AD, and not a good fit for Enzyme/Tapir which therefore use their own rule systems. Also not a natural fit for Tracker/ReverseDiff/ForwardDiff style of operator overloading AD.
0 commit comments