Flux.jl/paper/paper.md

1.6 KiB

title tags authors affiliations date bibliography
Flux: Elegant machine learning with Julia
deep learning
machine learning
natural language processing
computer vision
reinforcement learning
robotics
automatic differentiation
compiler
name orcid affiliation
Mike Innes 0000-0003-0788-0242 1
name index
Julia Computing 1
16 February 2018 paper.bib

Summary

Flux is library for machine learning (ML), written using the numerical computing language Julia [@Julia]. The package allows models to be written using Julia's simple mathematical syntax, and applies automatic differentiation (AD) to seamlessly calculate derivatives and train the model. Meanwhile, it makes heavy use of Julia's language and compiler features to carry out code analysis and make optimisations. For example, Julia's GPU compilation support [@besard:2017] can be used to JIT-compile custom GPU kernels for model layers [@CuArrays].

The machine learning community has traditionally been divided between "static" and "dynamic" frameworks that are easy to optimise and easy to use, respectively [@MLPL]. Flux blurs the line between these two approaches, combining a highly intuitive programming model with the compiler techniques needed by ML. This enables research into advanced compiler transforms such as batching [@Minibatch] without changing any user code.

Flux has been used heavily for natural language processing, but can also support state-of-the-art research models in areas like computer vision, reinforcement learning and robotics. Many examples of such models can be found in the model zoo [@Zoo].

References