Formulate differentiation as a dynamic programme, optimize it using opt_einsum.
This gives optimal schedules to compute derivative and Hessian quantities in simple netwoks.
https://colab.research.google.com/drive/1hNZ-NTNyXX5_gCvtQTArLngC0Pf6BuqN#scrollTo=CBDBWqWs9d5L