# Flux and automatic differentiation

**URL:** <https://discourse.julialang.org/t/flux-and-automatic-differentiation/54786>\
**Category:** Machine Learning\
**Created:** [February 7, 2021, 12:44pm UTC](https://discourse.julialang.org/t/flux-and-automatic-differentiation/54786 "2021-02-07T12:44:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![aquarelleX332](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquarellex332/32/21048_2.png) [@aquarelleX332](https://discourse.julialang.org/u/aquarelleX332)\
**Post date:** [February 7, 2021, 12:44pm UTC](https://discourse.julialang.org/t/flux-and-automatic-differentiation/54786/1 "2021-02-07T12:44:36Z")

</div>

Hello all,

This may be a naive question: how does Flux practice automatic differentiation? (i.e. according to which principle; I am aware we are dealing with [Zygote](https://arxiv.org/abs/1810.07951))  
Where can I possibly find “educational” documentation for this particular aspect? Please note that I am not a mathematician.

Thank in advance,  
T.

---

<div class="post-metadata">

**Author:** ![aquarelleX332](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquarellex332/32/21048_2.png) [@aquarelleX332](https://discourse.julialang.org/u/aquarelleX332)\
**Post date:** [February 7, 2021, 5:44pm UTC](https://discourse.julialang.org/t/flux-and-automatic-differentiation/54786/2 "2021-02-07T17:44:06Z")

</div>

I found something which is extremely helpful here: [GitHub - MikeInnes/diff-zoo: Differentiation for Hackers](https://github.com/MikeInnes/diff-zoo) 😀

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [February 8, 2021, 12:51pm UTC](https://discourse.julialang.org/t/flux-and-automatic-differentiation/54786/3 "2021-02-08T12:51:56Z")

</div>

See the manual,

[https://fluxml.ai/Zygote.jl/dev/internals/](https://fluxml.ai/Zygote.jl/dev/internals/)

and the paper linked there.

---

<div class="post-metadata">

**Author:** ![aquarelleX332](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquarellex332/32/21048_2.png) [@aquarelleX332](https://discourse.julialang.org/u/aquarelleX332)\
**Post date:** [February 8, 2021, 5:16pm UTC](https://discourse.julialang.org/t/flux-and-automatic-differentiation/54786/4 "2021-02-08T17:16:50Z")

</div>

I am very grateful to you, Tamas Papp, for providing me with the link to “[What Zygote does](https://fluxml.ai/Zygote.jl/dev/internals/)”.  
I am currently working on the diff-zoo written by Mike Innes. However, I have already browsed the page you mention. I rather like the last sentence:

> Of course, our goal is that you never have to do this, but until Zygote is more mature it can be a useful way to narrow down test cases. 😉
