TensorFlow with Jupyter Notebook, including CPU optimizations
Currently in five flavours:
- nightly-sandybridge (optimized for sandybridge or newer CPUs with AVX instructions).
- build-env (a build-ready environment, for custom builds [e.g. contributing to TensorFlow, using custom optimizations, etc.])
The default variant is 'stable'. I do recommend trying eboraas/tensorflow:nightly-sandybridge to see the difference optimizations can make (see examples below).
Also, see tensorflow/custom-example in https://bitbucket.org/EdBoraas/jupyter-docker/ for an example of a from-source build.
- GPU builds (current builds are CPU only); stable-gpu and nightly-gpu are already available here, but requires additional work on the host side to expose needed libraries. Documentation to come.
- smaller variants, possibly console-only variant (though care has been taken to keep existing builds as slim as possible already)
Basic usage examples:
Interactive (with Jupyter Notebook):
docker run -d -p 8888:8888 -v /path/to/notebooks/:/mnt/notebooks/ eboraas/tensorflow
... then browse to http://localhost:8888
Non-interactive (in this case, running one of the bundled example convolutional models):
docker run --rm -it eboraas/tensorflow python -m tensorflow.models.image.mnist.convolutional
As an example,
docker run --rm -it eboraas/tensorflow:nightly python -m tensorflow.models.image.mnist.convolutional takes 27m54s on my machine, and
docker run --rm -it eboraas/tensorflow:nightly-sandybridge python -m tensorflow.models.image.mnist.convolutional takes 19m53s. That's a pretty big proportional performance increase.