Deepo is a Docker image with a full reproducible deep learning research environment. It contains most popular deep learning frameworks: theano, tensorflow, sonnet, pytorch, keras, lasagne, mxnet, cntk, chainer, caffe, torch.
This is a fork of ufoym/deepo, built on python 3.6 instead of 3.5 and with some updated frameworks.
Step 1. Install Docker and nvidia-docker.
You can either directly download the image from Docker Hub, or build the image yourself.
docker pull tfriedel/deepo
git clone https://github.com/tfriedel/deepo.git
cd deepo && docker build -t tfriedel/deepo .
Note that this may take several hours as it compiles a few libraries from scratch.
Now you can try this command:
nvidia-docker run --rm tfriedel/deepo nvidia-smi
This should work and enables Deepo to use the GPU from inside a docker container. If this does not work, search the issues section on the nvidia-docker GitHub -- many solutions are already documented. To get an interactive shell to a container that will not be automatically deleted after you exit do
nvidia-docker run -it tfriedel/deepo bash
If you want to share your data and configurations between the host (your machine or VM) and the container in which you are using Deepo, use the -v option, e.g.
nvidia-docker run -it -v /host/data:/data -v /host/config:/config tfriedel/deepo bash
This will make /host/data
from the host visible as /data
in the container, and /host/config
as /config
. Such isolation reduces the chances of your containerized experiments overwriting or using wrong data.
You are now ready to begin your journey.
$ python
>>> import tensorflow
>>> print(tensorflow.__name__, tensorflow.__version__)
tensorflow 1.4.0
$ python
>>> import sonnet
>>> print(sonnet.__name__, sonnet.__path__)
sonnet ['/usr/local/lib/python3.6/dist-packages/sonnet']
$ python
>>> import torch
>>> print(torch.__name__, torch.__version__)
torch 0.2.0_3
$ python
>>> import keras
>>> print(keras.__name__, keras.__version__)
keras 2.1.1
$ python
>>> import mxnet
>>> print(mxnet.__name__, mxnet.__version__)
mxnet 0.12.0
$ python
>>> import cntk
>>> print(cntk.__name__, cntk.__version__)
cntk 2.2
$ python
>>> import chainer
>>> print(chainer.__name__, chainer.__version__)
chainer 3.0.0
$ python
>>> import theano
>>> print(theano.__name__, theano.__version__)
theano 1.0.0rc1+11.ge47f1c9
$ python
>>> import lasagne
>>> print(lasagne.__name__, lasagne.__version__)
lasagne 0.2.dev1
$ python
>>> import caffe
>>> print(caffe.__name__, caffe.__version__)
caffe 1.0.0
$ caffe --version
caffe version 1.0.0
$ th
│ ______ __ | Torch7
│ /_ __/__ ________/ / | Scientific computing for Lua.
│ / / / _ \/ __/ __/ _ \ | Type ? for help
│ /_/ \___/_/ \__/_//_/ | https://github.com/torch
│ | http://torch.ch
│
│th>
. | modern-deep-learning | dl-docker | jupyter-deeplearning | Deepo |
---|---|---|---|---|
ubuntu | 16.04 | 14.04 | 14.04 | 16.04 |
cuda | ❌ | 8.0 | 6.5-8.0 | 8.0 |
cudnn | ❌ | v5 | v2-5 | v6 |
theano | ❌ | ✔️ | ✔️ | ✔️ |
tensorflow | ✔️ | ✔️ | ✔️ | ✔️ |
sonnet | ❌ | ❌ | ❌ | ✔️ |
pytorch | ❌ | ❌ | ❌ | ✔️ |
keras | ✔️ | ✔️ | ✔️ | ✔️ |
lasagne | ❌ | ✔️ | ✔️ | ✔️ |
mxnet | ❌ | ❌ | ❌ | ✔️ |
cntk | ❌ | ❌ | ❌ | ✔️ |
chainer | ❌ | ❌ | ❌ | ✔️ |
caffe | ✔️ | ✔️ | ✔️ | ✔️ |
torch | ❌ | ✔️ | ✔️ | ✔️ |
Deepo is MIT licensed.