# Flux

... Initialising Photon Beams ...

Flux is a library for machine learning, implemented in Julia. In a nutshell, it simply lets you run normal Julia code on a backend like TensorFlow. It also provides many conveniences for doing deep learning.

Flux is very flexible. You can use a convenient Keras-like API if you want something simple, but you can also drop down to straight mathematics, or build your own abstractions. You can even use Flux's utilities (like optimisers) with a completely different backend (like Knet ) or mix and match approaches.

Note that Flux is in alpha. Many things work but the API is still in a state of... well, it might change.

Note: If you're using Julia v0.5 please see this version of the docs instead.

## Where do I start?

... Charging Ion Capacitors ...

The examples give a feel for high-level usage.

If you want to know why Flux is unique, or just don't want to see those digits again, check out the model building guide instead.

Flux is meant to be played with. These docs have lots of code snippets; try them out in Juno !

## Installation

... Inflating Graviton Zeppelins ...

    Pkg.update()
    Pkg.add("Flux.jl")

You'll also need a backend to run real training, if you don't have one already. Choose from MXNet or TensorFlow (MXNet is the recommended option if you're not sure):

    Pkg.add("MXNet") # or "TensorFlow"
    Pkg.test("Flux") # Make sure everything installed properly

Note: TensorFlow integration may not work properly on Julia v0.6 yet.