請注意,深度學習框架戰爭已經結束,該項目不再維護。
Deepo是一個開放式框架,可以組裝專業的Docker圖像,以無需痛苦,以進行深度學習研究。它提供了數十個標準組件的“樂高”集合,用於準備深度學習工具和將它們組裝到自定義Docker圖像中的框架。
Deepo的核心是一個Dockerfile發電機
我們還準備了一系列預製的碼頭圖像
docker pull ufoym/deepo對於中國從公共碼頭註冊表中提取圖像時可能會遭受緩慢速度的用戶,您可以通過在您的Docker Pull命令中指定包括註冊表在內的完整路徑(包括註冊表)來從中國註冊錶鏡像中摘取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在容器和/host/config As /config中從主機中創建 /主機 / /data 。這種隔離減少了您的容器化實驗覆蓋或使用錯誤數據的機會。
請注意,某些框架(例如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如果要在主機(機器或VM)和使用deepo的容器之間共享數據和配置,請使用-v選項,例如
docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo:cpu bash這將在容器中可見為/host/data在容器和/host/config As /config中從主機中創建 /主機 / /data 。這種隔離減少了您的容器化實驗覆蓋或使用錯誤數據的機會。
請注意,某些框架(例如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: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所有內容。請注意,生成器可以處理自動依賴關係處理,並從拓撲上對列表進行排序。因此,您無需擔心丟失依賴項和列表順序。
您還可以指定Python的版本:
python generate.py Dockerfile pytorch lasagne python==3.6docker build -t my/deepo .這可能需要幾分鐘,因為它從頭開始編譯了一些庫。
| 。 | 現代深度學習 | DL-Docker | jupyter挖掘 | Deepo |
|---|---|---|---|---|
| Ubuntu | 16.04 | 14.04 | 14.04 | 18.04 |
| 庫達 | x | 8.0 | 6.5-8.0 | 8.0-10.2/無 |
| 庫丁 | x | V5 | V2-5 | V7 |
| onnx | x | x | x | o |
| Theano | x | o | o | o |
| 張量 | o | o | o | o |
| 十四行詩 | x | x | x | o |
| Pytorch | x | x | x | o |
| 凱拉斯 | o | o | o | o |
| 烤寬麵條 | x | o | o | o |
| mxnet | x | x | x | o |
| CNTK | x | x | x | o |
| 連鎖商 | x | x | x | o |
| 咖啡餅 | o | o | o | o |
| caffe2 | x | x | x | o |
| 火炬 | x | o | o | o |
| darknet | x | x | x | o |
| 槳板 | x | x | x | o |
| 。 | 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-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 | 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 | |
| 與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-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 | 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獲得了麻省理工學院的許可。