Deepo — это открытый фреймворк для сборки специализированных образов Docker для исследований в области глубокого обучения без лишних сложностей. Он предоставляет «конструктор» из десятков стандартных компонентов для подготовки инструментов глубокого обучения и фреймворк для их сборки в пользовательские образы Docker.
В основе Deepo лежит генератор файлов Dockerfile, который:
Мы также готовим серию готовых образов Docker, которые:
Содержание:
Быстрый старт
Версия для GPU
Установка:
Шаг 1. Установите Docker и nvidia-docker.
Шаг 2. Получите универсальный образ из Docker Hub.
docker pull ufoym/deepo
Для пользователей в Китае, которые могут столкнуться с медленной скоростью при загрузке образа из общедоступного реестра Docker, вы можете загрузить образы deepo из зеркала реестра Китая, указав полный путь, включая реестр, в команде docker pull, например:
docker pull registry.docker-cn.com/ufoym/deepo
Использование: Теперь вы можете попробовать эту команду:
docker run --gpus all --rm ufoym/deepo nvidia-smi
Это должно работать и позволяет Deepo использовать графический процессор внутри контейнера Docker. Если это не работает, выполните поиск в разделе проблем на GitHub nvidia-docker — многие решения уже задокументированы. Чтобы получить интерактивную оболочку для контейнера, который не будет автоматически удалён после выхода, выполните:
docker run --gpus all -it ufoym/deepo bash
Если вы хотите поделиться своими данными и конфигурациями между хостом (вашей машиной или виртуальной машиной) и контейнером, в котором вы используете Deepo, используйте опцию -v, например:
docker run --gpus all -it -v /host/data:/data -v /host/config:/config ufoym/deepo bash
Это сделает /host/data
с хоста видимым как /data
в контейнере, и... Хост-конфигурация как конфигурация. Такая изоляция снижает вероятность того, что ваши эксперименты в контейнерах перезапишут или используют неверные данные.
Обратите внимание, что некоторые фреймворки (например, PyTorch) используют общую память для обмена данными между процессами, поэтому, если используется многопроцессорность, размера сегмента общей памяти по умолчанию, с которым работает контейнер, недостаточно, и вам следует увеличить размер общей памяти либо с помощью параметров командной строки --ipc=host
или --shm-size
для docker run
.
docker run --gpus all -it --ipc=host ufoym/deepo bash
docker pull ufoym/deepo:cpu
Теперь вы можете попробовать эту команду:
docker run -it ufoym/deepo:cpu bash
Если вы хотите поделиться своими данными и конфигурациями между хостом (вашей машиной или виртуальной машиной) и контейнером, в котором вы используете Deepo, используйте опцию -v, например:
docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo:cpu bash
Это сделает /host/data
с хоста видимым как /data
в контейнере, а /host/config
как /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
, упомянутый в разделе «Быстрый старт», предоставит вам стандартный образ, содержащий все доступные фреймворки глубокого обучения. Вы также можете настроить свою собственную среду.
Если вам больше нравится конкретный фреймворк, чем универсальный образ, просто добавьте тег с названием фреймворка. Возьмём, к примеру, TensorFlow:
docker pull ufoym/deepo:tensorflow
docker pull ufoym/deepo
docker 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.6
docker build -t my/deepo .
На это может уйти несколько минут, так как он компилирует несколько библиотек с нуля. | modern-deep-learning | dl-docker | jupyter-deeplearning | Deepo :------------------------------------------------: | :------------------: | :----------------: | :------------------: ubuntu | 16.04 | 14.04 | 14.04 cuda | X | 8.0 | 6.5-8.0 cudnn | X | v5 | v2-5 onnx | X | X | X theano | X | O | O tensorflow | O | O | O sonnet | X | X | X pytorch | X | X | X keras | O | O | O lasagne | X | O | O mxnet | X | X | X cntk | X | X | X chainer | X | X | X caffe | O | O | O caffe2 | X | X | X torch | X | O | O darknet | X | X | X paddlepaddle | X | X | X
# Tags ## Available Tags. | CUDA 11.3 / Python 3.8 | CPU-only / Python 3.8 |
---|---|---|
all-in-one |
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 | pytorch-py38-cu113 pytorch-py38 pytorch
|
pytorch-py38-cpu pytorch-cpu
|
Keras | keras-py38-cu113 keras-py38 keras
|
keras-py38-cpu keras-cpu
|
MXNet | mxnet-py38-cu113 mxnet-py38 mxnet
|
mxnet-py38-cpu mxnet-cpu
|
Chainer | chainer-py38-cu113 chainer-py38 chainer
|
chainer-py38-cpu chainer-cpu
|
Darknet | darknet-cu113 darknet
|
darknet-cpu |
PaddlePaddle | paddle-cu113 paddle
|
paddle-cpu |
. | CUDA 11.3 / Python 3.6 | CUDA 11.1 / Python 3.6
Примечание: в запросе присутствуют специальные теги markdown, которые были сохранены в ответе. | Chainer | Caffe | Caffe2 | Torch | Darknet | |-------------|-----------|----------|---------|------------| | chainer-py36-cu111 | Caffe (http://caffe.berkeleyvision.org) | Caffe2 (https://caffe2.ai) | Torch (http://torch.ch/) | Darknet (https://pjreddie.com/darknet/) | | chainer-py36-cu101 | caffe-py36-cu113 | — | torch-cu113 | darknet-cu113 | | chainer-py36-cu100 | caffe-py36-cu111 | — | torch-cu111 | darknet-cu111 | | chainer-py36-cu90 | caffe-py36-cu101 | — | torch-cu101 | darknet-cu101 | | chainer-py27-cu90, chainer-py27 | caffe-py27-cu90, caffe-py27 | — | torch-cu90, torch | darknet-cu90, darknet | | — | — | — | torch-cpu | — | | — | — | caffe2-py36-cpu, caffe2-cpu | torch-cpu | — | | — | — | caffe2-py27-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}}
}
We appreciate all contributions. If you are planning to contribute back bug-fixes, please do so without any further discussion. If you plan to contribute new features, utility functions or extensions, please first open an issue and discuss the feature with us.
Deepo is MIT licensed.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )