Flux is a machine-learning library for the multi-paradigm, fast, statistical programming language, Julia, which was developed by MIT. Flux is able to take another Julia function and a set of arguments and return a gradient.
Flux has a few key principles:
Extensibility - Flux has been developed and written to be flexible as highly as it can be when it is in use. It is easy and simple to use, simple as using your own code as part of the mode you want.
Easy to work with other libraries - Flux as a library works well with unrelated Julia libraries from images to different equation solvers, rather than duplicating them.
Doing the obvious thing - For features like regularization or embeddings, Flux has a limited number of explicit APIs. Instead, it will work and be quick to write out the mathematical form.