Observe que a guerra da estrutura de aprendizado profundo acabou, este projeto não está mais sendo mantido.
O Deepo é uma estrutura aberta para montar imagens especializadas do Docker para pesquisas de aprendizado profundo sem dor. Ele fornece um "conjunto de lego" de dezenas de componentes padrão para preparar ferramentas de aprendizado profundo e uma estrutura para montá -las em imagens personalizadas do Docker.
No centro de Deepo está um gerador de Dockerfile que
Também preparamos uma série de imagens de docker pré-construídas que
docker pull ufoym/deepo Para os usuários da China que podem sofrer de velocidade lenta ao extrair a imagem do registro público do Docker, você pode extrair imagens deepo do espelho do registro da China, especificando o caminho completo, incluindo o registro, em seu comando Pull Docker, por exemplo:
docker pull registry.docker-cn.com/ufoym/deepoAgora você pode tentar este comando:
docker run --gpus all --rm ufoym/deepo nvidia-smiIsso deve funcionar e permitir que o Depogo use a GPU de dentro de um recipiente do Docker. Se isso não funcionar, pesquise a seção de problemas no Github Nvidia-Docker-muitas soluções já estão documentadas. Para obter um shell interativo para um contêiner que não será excluído automaticamente após a saída
docker run --gpus all -it ufoym/deepo bashSe você deseja compartilhar seus dados e configurações entre o host (sua máquina ou VM) e o contêiner em que você está usando o Deepo, use a opção -v, por exemplo,
docker run --gpus all -it -v /host/data:/data -v /host/config:/config ufoym/deepo bash Isso tornará /host/data do host visível AS /data no contêiner e /host/config as /config . Esse isolamento reduz as chances de suas experiências de contêiner sobrescrever ou usar dados incorretos.
Observe que algumas estruturas (por exemplo, pytorch) usam a memória compartilhada para compartilhar dados entre os processos; portanto, se o multiprocessamento for usado, o tamanho do segmento de memória compartilhado padrão com que o contêiner executa não for suficiente e você deve aumentar o tamanho da memória compartilhada com --ipc=host ou --shm-size as opções de linha de comando para docker run .
docker run --gpus all -it --ipc=host ufoym/deepo bashdocker pull ufoym/deepo:cpuAgora você pode tentar este comando:
docker run -it ufoym/deepo:cpu bashSe você deseja compartilhar seus dados e configurações entre o host (sua máquina ou VM) e o contêiner em que você está usando o Deepo, use a opção -v, por exemplo,
docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo:cpu bash Isso tornará /host/data do host visível AS /data no contêiner e /host/config as /config . Esse isolamento reduz as chances de suas experiências de contêiner sobrescrever ou usar dados incorretos.
Observe que algumas estruturas (por exemplo, pytorch) usam a memória compartilhada para compartilhar dados entre os processos; portanto, se o multiprocessamento for usado, o tamanho do segmento de memória compartilhado padrão com que o contêiner executa não for suficiente e você deve aumentar o tamanho da memória compartilhada com --ipc=host ou --shm-size as opções de linha de comando para docker run .
docker run -it --ipc=host ufoym/deepo:cpu bashAgora você está pronto para começar sua jornada.
$ 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>
Observe que docker pull ufoym/deepo mencionado no Quick Start fornecerá uma imagem padrão contendo todas as estruturas de aprendizado profundo disponíveis. Você também pode personalizar seu próprio ambiente.
Se você preferir uma estrutura específica em vez de uma imagem multifuncional, basta anexar uma tag com o nome da estrutura. Veja o TensorFlow, por exemplo:
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 Por exemplo, se você gosta de pytorch e lasagne , então
python generate.py Dockerfile pytorch lasagneou com Cuda 11.1 e Cudnn 8
python generate.py Dockerfile pytorch lasagne --cuda-ver 11.1 --cudnn-ver 8 Isso deve gerar um Dockerfile que contém tudo para a construção pytorch e lasagne . Observe que o gerador pode lidar com processamento automático de dependência e classificar topologicamente as listas. Portanto, você não precisa se preocupar com a falta de dependências e a ordem da lista.
Você também pode especificar a versão do Python:
python generate.py Dockerfile pytorch lasagne python==3.6docker build -t my/deepo .Isso pode levar alguns minutos, pois compila algumas bibliotecas do zero.
| . | Aprendizagem moderna | DL-DOCKER | Jupyter-Deeplearning | Deepo |
|---|---|---|---|---|
| Ubuntu | 16.04 | 14.04 | 14.04 | 18.04 |
| CUDA | X | 8.0 | 6.5-8.0 | 8.0-10.2/Nenhum |
| cudnn | X | v5 | v2-5 | v7 |
| ONNX | X | X | X | O |
| Theano | X | O | O | O |
| tensorflow | O | O | O | O |
| soneto | X | X | X | O |
| Pytorch | X | X | X | O |
| Keras | O | O | O | O |
| Lasanha | X | O | O | O |
| mxnet | X | X | X | O |
| cntk | X | X | X | O |
| Chainner | X | X | X | O |
| Caffe | O | O | O | O |
| Caffe2 | X | X | X | O |
| tocha | X | O | O | O |
| Darknet | X | X | X | O |
| Paddlepddle | X | X | X | O |
| . | CUDA 11.3 / Python 3.8 | CPU somente / 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 |
| Chainner | chainer-py38-cu113 chainer-py38 chainer | chainer-py38-cpu chainer-cpu |
| Darknet | darknet-cu113 darknet | darknet-cpu |
| Paddlepddle | 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 somente / Python 3.6 | CPU somente / Python 2.7 |
|---|---|---|---|---|---|---|---|---|
| All-in-One | 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-in-One com Jupyter | all-jupyter-py36-cu90 | all-py27-jupyter py27-jupyter | all-py27-jupyter-cpu py27-jupyter-cpu | |||||
| Theano | 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 | |
| Soneto | sonnet-py36-cu113 | sonnet-py36-cu111 | sonnet-py36-cu101 | sonnet-py36-cu100 | sonnet-py36-cu90 | sonnet-py27-cu90 sonnet-py27 | sonnet-py27-cpu | |
| Pytorch | pytorch-py36-cu113 | pytorch-py36-cu111 | pytorch-py36-cu101 | pytorch-py36-cu100 | pytorch-py36-cu90 | pytorch-py27-cu90 pytorch-py27 | pytorch-py27-cpu | |
| Keras | keras-py36-cu113 | keras-py36-cu111 | keras-py36-cu101 | keras-py36-cu100 | keras-py36-cu90 | keras-py27-cu90 keras-py27 | keras-py27-cpu | |
| Lasanha | 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 | |
| Chainner | chainer-py36-cu113 | chainer-py36-cu111 | chainer-py36-cu101 | chainer-py36-cu100 | chainer-py36-cu90 | chainer-py27-cu90 chainer-py27 | chainer-py27-cpu | |
| Caffe | 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 | ||||
| Tocha | torch-cu113 | torch-cu111 | torch-cu101 | torch-cu100 | torch-cu90 | torch torch-cu90 | torch-cpu | |
| Darknet | 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}}
}
Agradecemos todas as contribuições. Se você planeja contribuir com fixos de bug, faça-o sem nenhuma discussão adicional. Se você planeja contribuir com novos recursos, funções ou extensões de utilitário, primeiro abra um problema e discuta o recurso conosco.
Deepo é licenciado pelo MIT.