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
-poption. - Create
deeplearning_<name>_datavolume. The name calculated fromwork_folderargument. - Run the docker container
deeplearning_<name>from this image in background. - In the container
work_foldermounts as/home/user/workanddeeplearning_<name>_dataas/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/runsas 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.