Public | Automated Build

Last pushed: 9 days ago
Short Description
Keras in Docker for reproducible deep learning on CPU or GPU
Full Description

docker-keras

docker-keras is a minimal Docker image built from Debian 9 (amd64) for reproducible deep learning based on Keras. It features minimal images for Python 2 or 3, TensorFlow or Theano backends, processing on CPU or GPU, and uses only Debian and Python packages (no manual installations). Each tag is using the latest released versions at a specific date.

Open source project:

Available tags:

  • 2.0.5-py2, 2.0.5-cpu, 2.0.5, latest points to 2.0.5-py2-tf-cpu
  • 2.0.5-py3 points to 2.0.5-py3-tf-cpu
  • 2.0.5-gpu points to 2.0.5-py2-tf-gpu
  • 2.0.5-py2-tf-cpu/2.0.5-py2-tf-gpu [2017-06-13]: Python 2.7 + Keras <small>(2.0.5)</small> + TensorFlow <small>(1.1.0)</small> on CPU/GPU (Dockerfile.py2-tf-cpu/.py2-tf-gpu)
  • 2.0.5-py3-tf-cpu/2.0.5-py3-tf-gpu [2017-06-13]: Python 3.5 + Keras <small>(2.0.5)</small> + TensorFlow <small>(1.1.0)</small> on CPU/GPU (Dockerfile.py3-tf-cpu/.py3-tf-gpu)
  • 2.0.5-py2-th-cpu/2.0.5-py2-th-gpu [2017-06-13]: Python 2.7 + Keras <small>(2.0.5)</small> + Theano <small>(0.9.0)</small> on CPU/GPU (Dockerfile.py2-th-cpu/.py2-th-gpu)
  • 2.0.5-py3-th-cpu/2.0.5-py3-th-gpu [2017-06-13]: Python 3.5 + Keras <small>(2.0.5)</small> + Theano <small>(0.9.0)</small> on CPU/GPU (Dockerfile.py3-th-cpu/.py3-th-gpu)
  • 2.0.4-py2-tf-cpu/2.0.4-py2-tf-gpu/2.0.4-py3-tf-cpu/2.0.4-py3-tf-gpu [2017-05-01]: Python 2.7/3.5 + Keras <small>(2.0.4)</small> + TensorFlow <small>(1.1.0)</small> on CPU/GPU
  • 2.0.4-py2-th-cpu/2.0.4-py2-th-gpu/2.0.4-py3-th-cpu/2.0.4-py3-th-gpu [2017-05-01]: Python 2.7/3.5 + Keras <small>(2.0.4)</small> + Theano <small>(0.9.0)</small> on CPU/GPU
  • 2.0.3-py2-tf-cpu/2.0.3-py2-tf-gpu/2.0.3-py3-tf-cpu/2.0.3-py3-tf-gpu [2017-04-19]: Python 2.7/3.5 + Keras <small>(2.0.3)</small> + TensorFlow <small>(1.0.1)</small> on CPU/GPU
  • 2.0.3-py2-th-cpu/2.0.3-py2-th-gpu/2.0.3-py3-th-cpu/2.0.3-py3-th-gpu [2017-04-19]: Python 2.7/3.5 + Keras <small>(2.0.3)</small> + Theano <small>(0.9.0)</small> on CPU/GPU
  • 2.0.2-py2-tf-cpu/2.0.2-py2-tf-gpu/2.0.2-py3-tf-cpu/2.0.2-py3-tf-gpu [2017-03-27]: Python 2.7/3.5 + Keras <small>(2.0.2)</small> + TensorFlow <small>(1.0.1)</small> on CPU/GPU
  • 2.0.2-py2-th-cpu/2.0.2-py2-th-gpu/2.0.2-py3-th-cpu/2.0.2-py3-th-gpu [2017-03-27]: Python 2.7/3.5 + Keras <small>(2.0.2)</small> + Theano <small>(0.9.0)</small> on CPU/GPU
  • 2.0.0-py2-tf-cpu/2.0.0-py2-tf-gpu/2.0.0-py3-tf-cpu/2.0.0-py3-tf-gpu [2017-03-15]: Python 2.7/3.5 + Keras <small>(2.0.0)</small> + TensorFlow <small>(1.0.1)</small> on CPU/GPU
  • 2.0.0-py2-th-cpu/2.0.0-py2-th-gpu/2.0.0-py3-th-cpu/2.0.0-py3-th-gpu [2017-03-15]: Python 2.7/3.5 + Keras <small>(2.0.0)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.2.2-py2-tf-cpu/1.2.2-py2-tf-gpu/1.2.2-py3-tf-cpu/1.2.2-py3-tf-gpu [2017-02-17]: Python 2.7/3.5 + Keras <small>(1.2.2)</small> + TensorFlow <small>(1.0.0)</small> on CPU/GPU
  • 1.2.2-py2-th-cpu/1.2.2-py2-th-gpu/1.2.2-py3-th-cpu/1.2.2-py3-th-gpu [2017-02-17]: Python 2.7/3.5 + Keras <small>(1.2.2)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.2.1-py2-tf-cpu/1.2.1-py2-tf-gpu/1.2.1-py3-tf-cpu/1.2.1-py3-tf-gpu [2017-01-20]: Python 2.7/3.5 + Keras <small>(1.2.1)</small> + TensorFlow <small>(0.12.1)</small> on CPU/GPU
  • 1.2.1-py2-th-cpu/1.2.1-py2-th-gpu/1.2.1-py3-th-cpu/1.2.1-py3-th-gpu [2017-01-20]: Python 2.7/3.5 + Keras <small>(1.2.1)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.2.0-py2-tf-cpu/1.2.0-py2-tf-gpu/1.2.0-py3-tf-cpu/1.2.0-py3-tf-gpu [2016-12-20]: Python 2.7/3.5 + Keras <small>(1.2.0)</small> + TensorFlow <small>(0.12.0)</small> on CPU/GPU
  • 1.2.0-py2-th-cpu/1.2.0-py2-th-gpu/1.2.0-py3-th-cpu/1.2.0-py3-th-gpu [2016-12-20]: Python 2.7/3.5 + Keras <small>(1.2.0)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.1.1-py2-tf-cpu/1.1.1-py2-tf-gpu/1.1.1-py3-tf-cpu/1.1.1-py3-tf-gpu [2016-10-31]: Python 2.7/3.5 + Keras <small>(1.1.1)</small> + TensorFlow <small>(0.10.0)</small> on CPU/GPU
  • 1.1.1-py2-th-cpu/1.1.1-py2-th-gpu/1.1.1-py3-th-cpu/1.1.1-py3-th-gpu [2016-10-31]: Python 2.7/3.5 + Keras <small>(1.1.1)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.1.0-py2-tf-cpu/1.1.0-py2-tf-gpu/1.1.0-py3-tf-cpu/1.1.0-py3-tf-gpu [2016-09-20]: Python 2.7/3.5 + Keras <small>(1.1.0)</small> + TensorFlow <small>(0.10.0)</small> on CPU/GPU
  • 1.1.0-py2-th-cpu/1.1.0-py2-th-gpu/1.1.0-py3-th-cpu/1.1.0-py3-th-gpu [2016-09-20]: Python 2.7/3.5 + Keras <small>(1.1.0)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.0.8-py2-tf-cpu/1.0.8-py2-tf-gpu/1.0.8-py3-tf-cpu/1.0.8-py3-tf-gpu [2016-08-28]: Python 2.7/3.5 + Keras <small>(1.0.8)</small> + TensorFlow <small>(0.9.0)</small> on CPU/GPU
  • 1.0.8-py2-th-cpu/1.0.8-py2-th-gpu/1.0.8-py3-th-cpu/1.0.8-py3-th-gpu [2016-08-28]: Python 2.7/3.5 + Keras <small>(1.0.8)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.0.6-py2-tf-cpu/1.0.6-py2-tf-gpu/1.0.6-py3-tf-cpu/1.0.6-py3-tf-gpu [2016-07-20]: Python 2.7/3.5 + Keras <small>(1.0.6)</small> + TensorFlow <small>(0.9.0)</small> on CPU/GPU
  • 1.0.6-py2-th-cpu/1.0.6-py2-th-gpu/1.0.6-py3-th-cpu/1.0.6-py3-th-gpu [2016-07-20]: Python 2.7/3.5 + Keras <small>(1.0.6)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.0.4-py2-tf-cpu/1.0.4-py2-tf-gpu/1.0.4-py3-tf-cpu/1.0.4-py3-tf-gpu [2016-06-16]: Python 2.7/3.5 + Keras <small>(1.0.4)</small> + TensorFlow <small>(0.8.0)</small> on CPU/GPU
  • 1.0.4-py2-th-cpu/1.0.4-py2-th-gpu/1.0.4-py3-th-cpu/1.0.4-py3-th-gpu [2016-06-16]: Python 2.7/3.5 + Keras <small>(1.0.4)</small> + Theano <small>(0.8.2)</small> on CPU/GPU
  • 1.0.1-py2-th-cpu/1.0.1-py2-th-gpu [2016-04-16]: Python 2.7 + Keras <small>(1.0.1)</small> + Theano <small>(0.8.1)</small> on CPU/GPU
  • 0.3.3-py2-th-cpu/0.3.3-py2-th-gpu [2016-03-31]: Python 2.7 + Keras <small>(0.3.3)</small> + Theano <small>(0.8.1)</small> on CPU/GPU

Usage

Quick experiment with latest Keras (with TensorFlow backend on CPU) and your Python 2 code in /srv/ai:

$ docker run -it --rm -v /srv/ai:/srv/ai gw000/keras /srv/ai/run.py

Or using TensorFlow backend on GPUs (see docker-debian-cuda) in Python 2:

$ docker run -it --rm $(ls /dev/nvidia* | xargs -I{} echo '--device={}') -v /srv/ai:/srv/ai gw000/keras:1.2.0-py2-tf-gpu /srv/ai/run.py

Or using Theano backend on GPUs (see docker-debian-cuda) in Python 3:

$ docker run -it --rm $(ls /dev/nvidia* | xargs -I{} echo '--device={}') -v /srv/ai:/srv/ai gw000/keras:1.2.0-py3-th-gpu /srv/ai/run.py

In practice you are supposed to extend this image by writing your own Dockerfile that installs all your application dependencies (either using apt-get or pip). Eg. if you need Matplotlib, PIL/pillow, Pandas, Scikit-learn, and Statsmodels:

FROM gw000/keras:1.2.0-py2-th-cpu

# install dependencies from debian packages
RUN apt-get update -qq \
 && apt-get install --no-install-recommends -y \
    python-matplotlib \
    python-pillow

# install dependencies from python packages
RUN pip --no-cache-dir install \
    pandas \
    scikit-learn \
    statsmodels

# install your app
ADD ai/ /srv/ai/
RUN chmod +x /srv/ai/run.py

CMD ["/srv/ai/run.py"]

If you are looking for a full deep learning research environment based on Keras and Jupyter, check out docker-keras-full.

Feedback

If you encounter any bugs or have feature requests, please file them in the issue tracker or even develop it yourself and submit a pull request over GitHub.

License

Copyright © 2016-2017 gw0 [http://gw.tnode.com/] <gw.2017@ena.one>

This library is licensed under the GNU Affero General Public License 3.0+ (AGPL-3.0+). Note that it is mandatory to make all modifications and complete source code of this library publicly available to any user.

Docker Pull Command
Owner
gw000
Source Repository

Comments (1)
somitgupta
8 months ago

does this come with CUDA Toolkit and cuDNN pre-installed?