Обратите внимание, что военная рамка глубокого обучения закончилась, этот проект больше не поддерживается.
Deako - это открытая структура для сборки специализированных изображений Docker для исследований глубокого обучения без боли. Он предоставляет «набор LEGO» десятков стандартных компонентов для подготовки инструментов глубокого обучения и основы для их сборки в пользовательские изображения Docker.
В основе Deepo лежит генератор DockerFile, который
Мы также готовим серию предварительно построенных изображений Docker, которые
docker pull ufoym/deepo Для пользователей в Китае, которые могут страдать от медленных скоростей при вытягивании изображения из реестра общественного докера, вы можете вытащить изображения deepo из зеркала реестра Китая, указав полный путь, включая реестр, в своей команде Docker Pull, например:
docker pull registry.docker-cn.com/ufoym/deepoТеперь вы можете попробовать эту команду:
docker run --gpus all --rm ufoym/deepo nvidia-smiЭто должно работать и позволяет Deepo использовать GPU из контейнера Docker. Если это не работает, найдите в разделе «Проблемы» на Github Nvidia-Docker-многие решения уже задокументированы. Чтобы получить интерактивную оболочку в контейнер, который не будет автоматически удален после выхода на выходу
docker run --gpus all -it ufoym/deepo bashЕсли вы хотите поделиться своими данными и конфигурациями между хостом (вашей машиной или виртуальной машиной) и контейнером, в котором вы используете DEACO, используйте опцию -V, например,
docker run --gpus all -it -v /host/data:/data -v /host/config:/config ufoym/deepo bash Это сделает /host/data с хоста видимым как /data в контейнере и /host/config as /config . Такая изоляция снижает шансы на перезапись ваших контейнерных экспериментов или использования неправильных данных.
Обратите внимание, что некоторые фреймворки (например, Pytorch) используют общую память, чтобы обмениваться данными между процессами, поэтому, если используется многопроцессия, размер сегмента общей памяти по умолчанию, с которым работает контейнер, недостаточно, и вы должны увеличить размер общей памяти либо с помощью --ipc=host или --shm-size командной строки, чтобы docker run .
docker run --gpus all -it --ipc=host ufoym/deepo bashdocker pull ufoym/deepo:cpuТеперь вы можете попробовать эту команду:
docker run -it ufoym/deepo:cpu bashЕсли вы хотите поделиться своими данными и конфигурациями между хостом (вашей машиной или виртуальной машиной) и контейнером, в котором вы используете DEACO, используйте опцию -V, например,
docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo:cpu bash Это сделает /host/data с хоста видимым как /data в контейнере и /host/config as /config . Такая изоляция снижает шансы на перезапись ваших контейнерных экспериментов или использования неправильных данных.
Обратите внимание, что некоторые фреймворки (например, Pytorch) используют общую память, чтобы обмениваться данными между процессами, поэтому, если используется многопроцессия, размер сегмента общей памяти по умолчанию, с которым работает контейнер, недостаточно, и вы должны увеличить размер общей памяти либо с помощью --ipc=host или --shm-size командной строки, чтобы docker run .
docker run -it --ipc=host ufoym/deepo:cpu bashТеперь вы готовы начать свое путешествие.
$ python
> >> import tensorflow
> >> import sonnet
> >> import torch
> >> import keras
> >> import mxnet
> >> import cntk
> >> import chainer
> >> import theano
> >> import lasagne
> >> import caffe
> >> import paddle $ caffe --version
caffe version 1.0.0
$ darknet
usage: darknet <function>
Обратите внимание, что docker pull ufoym/deepo упомянутый в Quick Start, даст вам стандартное изображение, содержащее все доступные фреймворки глубокого обучения. Вы также можете настроить свою собственную среду.
Если вы предпочитаете определенную структуру, а не изображение «все в одном», просто добавьте тег с именем фреймворка. Возьмите TensorFlow, например:
docker pull ufoym/deepo:tensorflowdocker pull ufoym/deepodocker run --gpus all -it -p 8888:8888 -v /home/u:/root --ipc=host ufoym/deepo jupyter lab --no-browser --ip=0.0.0.0 --allow-root --LabApp.allow_origin= ' * ' --LabApp.root_dir= ' /root ' git clone https://github.com/ufoym/deepo.git
cd deepo/generator Например, если вам нравятся pytorch и lasagne , то
python generate.py Dockerfile pytorch lasagneили с cuda 11.1 и cudnn 8
python generate.py Dockerfile pytorch lasagne --cuda-ver 11.1 --cudnn-ver 8 Это должно генерировать Dockerfile, который содержит все для построения pytorch и lasagne . Обратите внимание, что генератор может обрабатывать автоматическую обработку зависимостей и топологически сортировать списки. Таким образом, вам не нужно беспокоиться о отсутствии зависимостей и заказа списка.
Вы также можете указать версию Python:
python generate.py Dockerfile pytorch lasagne python==3.6docker build -t my/deepo .Это может занять несколько минут, поскольку он собирает несколько библиотек с нуля.
| Полем | современное обучение | DL-Docker | Юпитер-Дип-Картинг | Дико |
|---|---|---|---|---|
| Ubuntu | 16.04 | 14.04 | 14.04 | 18.04 |
| куда | Х | 8.0 | 6.5-8.0 | 8.0-10.2/Нет |
| Cudnn | Х | V5 | V2-5 | V7 |
| Onnx | Х | Х | Х | О |
| Теано | Х | О | О | О |
| Tensorflow | О | О | О | О |
| сонет | Х | Х | Х | О |
| пирог | Х | Х | Х | О |
| керас | О | О | О | О |
| Лазанья | Х | О | О | О |
| MXNET | Х | Х | Х | О |
| cntk | Х | Х | Х | О |
| цепь | Х | Х | Х | О |
| кофе | О | О | О | О |
| Caffe2 | Х | Х | Х | О |
| факел | Х | О | О | О |
| темная сеть | Х | Х | Х | О |
| Паддлпаддл | Х | Х | Х | О |
| Полем | CUDA 11.3 / Python 3.8 | Только CPU / Python 3.8 |
|---|---|---|
| Все в одном | latest all all-py38 py38-cu113 all-py38-cu113 | all-py38-cpu all-cpu py38-cpu cpu |
| Tensorflow | tensorflow-py38-cu113 tensorflow-py38 tensorflow | tensorflow-py38-cpu tensorflow-cpu |
| Пирог | pytorch-py38-cu113 pytorch-py38 pytorch | pytorch-py38-cpu pytorch-cpu |
| Керас | keras-py38-cu113 keras-py38 keras | keras-py38-cpu keras-cpu |
| MXNET | mxnet-py38-cu113 mxnet-py38 mxnet | mxnet-py38-cpu mxnet-cpu |
| Цепь | chainer-py38-cu113 chainer-py38 chainer | chainer-py38-cpu chainer-cpu |
| Темная сеть | darknet-cu113 darknet | darknet-cpu |
| Паддлпаддл | paddle-cu113 paddle | paddle-cpu |
| Полем | CUDA 11.3 / Python 3.6 | CUDA 11.1 / Python 3.6 | CUDA 10.1 / Python 3.6 | CUDA 10.0 / Python 3.6 | Cuda 9.0 / Python 3.6 | Cuda 9.0 / Python 2.7 | Только CPU / Python 3.6 | Только CPU / Python 2.7 |
|---|---|---|---|---|---|---|---|---|
| Все в одном | py36-cu113 all-py36-cu113 | py36-cu111 all-py36-cu111 | py36-cu101 all-py36-cu101 | py36-cu100 all-py36-cu100 | py36-cu90 all-py36-cu90 | all-py27-cu90 all-py27 py27-cu90 | all-py27-cpu py27-cpu | |
| Все в одном с Юпитером | all-jupyter-py36-cu90 | all-py27-jupyter py27-jupyter | all-py27-jupyter-cpu py27-jupyter-cpu | |||||
| Теано | theano-py36-cu113 | theano-py36-cu111 | theano-py36-cu101 | theano-py36-cu100 | theano-py36-cu90 | theano-py27-cu90 theano-py27 | theano-py27-cpu | |
| Tensorflow | tensorflow-py36-cu113 | tensorflow-py36-cu111 | tensorflow-py36-cu101 | tensorflow-py36-cu100 | tensorflow-py36-cu90 | tensorflow-py27-cu90 tensorflow-py27 | tensorflow-py27-cpu | |
| Сонет | sonnet-py36-cu113 | sonnet-py36-cu111 | sonnet-py36-cu101 | sonnet-py36-cu100 | sonnet-py36-cu90 | sonnet-py27-cu90 sonnet-py27 | sonnet-py27-cpu | |
| Пирог | pytorch-py36-cu113 | pytorch-py36-cu111 | pytorch-py36-cu101 | pytorch-py36-cu100 | pytorch-py36-cu90 | pytorch-py27-cu90 pytorch-py27 | pytorch-py27-cpu | |
| Керас | keras-py36-cu113 | keras-py36-cu111 | keras-py36-cu101 | keras-py36-cu100 | keras-py36-cu90 | keras-py27-cu90 keras-py27 | keras-py27-cpu | |
| Лазанья | lasagne-py36-cu113 | lasagne-py36-cu111 | lasagne-py36-cu101 | lasagne-py36-cu100 | lasagne-py36-cu90 | lasagne-py27-cu90 lasagne-py27 | lasagne-py27-cpu | |
| MXNET | mxnet-py36-cu113 | mxnet-py36-cu111 | mxnet-py36-cu101 | mxnet-py36-cu100 | mxnet-py36-cu90 | mxnet-py27-cu90 mxnet-py27 | mxnet-py27-cpu | |
| Cntk | cntk-py36-cu113 | cntk-py36-cu111 | cntk-py36-cu101 | cntk-py36-cu100 | cntk-py36-cu90 | cntk-py27-cu90 cntk-py27 | cntk-py27-cpu | |
| Цепь | chainer-py36-cu113 | chainer-py36-cu111 | chainer-py36-cu101 | chainer-py36-cu100 | chainer-py36-cu90 | chainer-py27-cu90 chainer-py27 | chainer-py27-cpu | |
| Кофе | caffe-py36-cu113 | caffe-py36-cu111 | caffe-py36-cu101 | caffe-py36-cu100 | caffe-py36-cu90 | caffe-py27-cu90 caffe-py27 | caffe-py27-cpu | |
| Caffe2 | caffe2-py36-cu90 caffe2-py36 caffe2 | caffe2-py27-cu90 caffe2-py27 | caffe2-py36-cpu caffe2-cpu | caffe2-py27-cpu | ||||
| Факел | torch-cu113 | torch-cu111 | torch-cu101 | torch-cu100 | torch-cu90 | torch-cu90 torch | torch-cpu | |
| Темная сеть | darknet-cu113 | darknet-cu111 | darknet-cu101 | darknet-cu100 | darknet-cu90 | darknet-cu90 darknet | darknet-cpu |
@misc{ming2017deepo,
author = {Ming Yang},
title = {Deepo: set up deep learning environment in a single command line.},
year = {2017},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/ufoym/deepo}}
}
Мы ценим все вклад. Если вы планируете внести обратный вклад в фиксам ошибок, пожалуйста, сделайте это без дальнейшего обсуждения. Если вы планируете внести новые функции, функции утилиты или расширения, сначала откройте проблему и обсудите эту функцию с нами.
Дико лицензирован MIT.