딥 러닝 프레임 워크 전쟁이 끝났 으며이 프로젝트는 더 이상 유지되지 않습니다.
Deepo는 고통없이 딥 러닝 연구를위한 전문 Docker 이미지를 조립하기위한 개방형 프레임 워크입니다. 딥 러닝 도구를 준비하기위한 수십 개의 표준 구성 요소의 "레고 세트"를 제공하고 사용자 정의 도커 이미지로 조립하기위한 프레임 워크를 제공합니다.
Deepo의 핵심에는 Dockerfile 생성기가 있습니다.
우리는 또한 일련의 사전 구축 된 도커 이미지를 준비합니다.
docker pull ufoym/deepo Public Docker Registry에서 이미지를 가져올 때 속도가 느린 속도로 고통받을 수있는 중국 사용자의 경우 Docker Pull 명령에서 레지스트리를 포함한 전체 경로를 지정하여 China Registry Mirror에서 deepo 이미지를 가져올 수 있습니다.
docker pull registry.docker-cn.com/ufoym/deepo이제이 명령을 시도 할 수 있습니다.
docker run --gpus all --rm ufoym/deepo nvidia-smi이를 통해 Deepo는 Docker 컨테이너 내부에서 GPU를 사용할 수 있습니다. 이것이 작동하지 않으면 Nvidia-Docker Github의 문제 섹션을 검색하십시오. 많은 솔루션이 이미 문서화되어 있습니다. 출구 후에 자동으로 삭제되지 않는 컨테이너에 대화식 쉘을 가져 오려면
docker run --gpus all -it ufoym/deepo bash호스트 (기계 또는 VM)와 Deepo를 사용하는 컨테이너 간의 데이터 및 구성을 공유하려면 -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 또는 docker run 에 대한 --shm-size 명령 줄 옵션을 사용하여 공유 메모리 크기를 늘려야합니다.
docker run --gpus all -it --ipc=host ufoym/deepo bashdocker pull ufoym/deepo:cpu이제이 명령을 시도 할 수 있습니다.
docker run -it ufoym/deepo:cpu bash호스트 (기계 또는 VM)와 Deepo를 사용하는 컨테이너 간의 데이터 및 구성을 공유하려면 -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 또는 docker run 에 대한 --shm-size 명령 줄 옵션을 사용하여 공유 메모리 크기를 늘려야합니다.
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>
Quick Start에서 언급 한 docker pull ufoym/deepo 는 사용 가능한 모든 딥 러닝 프레임 워크를 포함하는 표준 이미지를 제공합니다. 자신의 환경도 사용자 정의 할 수 있습니다.
올인원 이미지가 아닌 특정 프레임 워크를 선호하는 경우 프레임 워크 이름의 태그를 추가하십시오. 예를 들면 다음과 같습니다.
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 이것은 pytorch 와 lasagne 구축하기위한 모든 것을 포함하는 dockerfile을 생성해야합니다. 생성기는 자동 종속성 처리를 처리하고 목록을 위상으로 정렬 할 수 있습니다. 따라서 의존성 누락과 목록 순서에 대해 걱정할 필요가 없습니다.
Python 버전을 지정할 수도 있습니다.
python generate.py Dockerfile pytorch lasagne python==3.6docker build -t my/deepo .몇 분 동안 몇 분 동안 몇 분이 걸릴 수 있습니다.
| . | 현대적인 비등 | dl-docker | Jupyter-DeePlearning | Deepo |
|---|---|---|---|---|
| 우분투 | 16.04 | 14.04 | 14.04 | 18.04 |
| 쿠다 | 엑스 | 8.0 | 6.5-8.0 | 8.0-10.2/없음 |
| CUDNN | 엑스 | v5 | v2-5 | v7 |
| onx | 엑스 | 엑스 | 엑스 | 영형 |
| 티아노 | 엑스 | 영형 | 영형 | 영형 |
| 텐서 플로 | 영형 | 영형 | 영형 | 영형 |
| 소네트 | 엑스 | 엑스 | 엑스 | 영형 |
| Pytorch | 엑스 | 엑스 | 엑스 | 영형 |
| 케라 | 영형 | 영형 | 영형 | 영형 |
| 라자냐 | 엑스 | 영형 | 영형 | 영형 |
| mxnet | 엑스 | 엑스 | 엑스 | 영형 |
| cntk | 엑스 | 엑스 | 엑스 | 영형 |
| 체인 | 엑스 | 엑스 | 엑스 | 영형 |
| 카페 | 영형 | 영형 | 영형 | 영형 |
| caffe2 | 엑스 | 엑스 | 엑스 | 영형 |
| 토치 | 엑스 | 영형 | 영형 | 영형 |
| 다크 넷 | 엑스 | 엑스 | 엑스 | 영형 |
| 패들 라디 | 엑스 | 엑스 | 엑스 | 영형 |
| . | CUDA 11.3 / Python 3.8 | CPU 전용 / 파이썬 3.8 |
|---|---|---|
| 올인원 | latest all all-py38 py38-cu113 all-py38-cu113 | all-py38-cpu all-cpu py38-cpu cpu |
| 텐서 플로 | tensorflow-py38-cu113 tensorflow-py38 tensorflow | tensorflow-py38-cpu tensorflow-cpu |
| Pytorch | 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 전용 / 파이썬 3.6 | CPU 전용 / 파이썬 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 | |
| Jupyter와 함께 올인원 | 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-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 | 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}}
}
우리는 모든 기여에 감사드립니다. 버그 고정을 다시 기여할 계획이라면 더 이상의 토론없이 그렇게하십시오. 새로운 기능, 유틸리티 기능 또는 확장 기능을 제공 할 계획이라면 먼저 문제를 열고 기능을 논의하십시오.
Deepo는 MIT 라이센스가 부여되었습니다.