Enable build support by adding .onedev-buildspec.yml
home | Loading last commit info... | |
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
Dockerfile.local | ||
LICENSE | ||
README.md | ||
deeplearning.sh | ||
requirements.txt | ||
supervisord.conf |
README.md
Deep learning laboratory
Includes:
- GPU support
- Python 3.7
- Jupyter + Tensorboard
- Pytorch + Ignite + TensorboardX
- Tensorflow + Keras
- Jupyter, numpy, scipy, pandas, skimage, matplotlib, tqdm
- Supervisord
How to use
Clone repository:
git clone https://github.com/vslutov/deeplearning.git
Run command:
usage: deeplearning.sh [-h] [-j JUPYTER_PORT] [-t TENSORBOARD_PORT]
[-p PASSWORD]
work_folder
Start deep learning laboratory
positional arguments:
work_folder
optional arguments:
-h, --help show this help message and exit
-j JUPYTER_PORT, --jupyter-port JUPYTER_PORT
The jupyter listen port [default: some free port]
-t TENSORBOARD_PORT, --tensorboard-port TENSORBOARD_PORT
The jupyter listen port [default: some free port]
-p PASSWORD, --password PASSWORD
The jupyter password [default: random string]
If you shut down jupyter server, container will shut down.
Tesnorboard is disabled by default, becouse it's too hungry for ram.
You can enable tensorboard by command supervisorctl start tensorboard
.
Multiple GPUs
You can use environment NVIDIA_VISIBLE_DEVICES
to specify visible devices in container.
Requirements
- Ubuntu, CentOS or RHEL.
- Python 2.6+ or 3.2+, bash.
- Docker
- Nvidia-docker
How it works
Script deeplearning.sh:
If the container have been already started, run the shell in the container and exit.
- Update the git repository (could be canceled with
Ctrl-D
). - Build the docker image. The first run may take a few minutes.
- Generate unique jupyter password or take your
-p
option. - Create
deeplearning_<name>_data
volume. The name calculated fromwork_folder
argument. - Run the docker container
deeplearning_<name>
from this image in background. - In the container
work_folder
mounts as/home/user/work
anddeeplearning_<name>_data
as/home/user/data
. - In the container starts supervisor, which launch a jupyter notebook and a tensorboard.
- If you set the jupyter listening port, then the host port forwards to the jupyter notebook, else a random port sets.
- The tensorboard runs with folder
data_folder/runs
as input. The listening port sets as like as the jupyter listening port. - Print out the container id, jupyter and tensorboard host ports and the jupyter password.
- Run the shell in the container.