Optimisers.jl defines many standard gradient-based optimisation rules, and tools for applying them to deeply nested models.
This is the future of training for Flux.jl neural networks, but it can be used separately on anything understood by Functors.jl.
]add Optimisers
Find out more about using Optimisers.jl in the docs.