请注意,深度学习框架战争已经结束,该项目不再维护。
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获得了麻省理工学院的许可。