ディープラーニングフレームワークの戦争は終わりました、このプロジェクトはもはや維持されていません。
Deepoは、痛みのない深い学習研究のための特殊なDocker画像を組み立てるためのオープンなフレームワークです。深い学習ツールを準備するための多数の標準コンポーネントの「LEGOセット」と、それらをカスタムDocker画像に組み込むためのフレームワークを提供します。
Deepoのコアには、DockerFileジェネレーターがあります
また、事前に構築された一連のDocker画像を準備します
docker pull ufoym/deepo Public Dockerレジストリから画像を引くときに遅い速度に苦しむ可能性のある中国のユーザーの場合、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の作成/data 、および/host/config as /configに表示されます。このような分離は、コンテナ化された実験が上書きまたは間違ったデータを使用する可能性を減らします。
一部のフレームワーク(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の作成/data 、および/host/config as /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: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 |
|---|---|---|---|---|
| ubuntu | 16.04 | 14.04 | 14.04 | 18.04 |
| cuda | x | 8.0 | 6.5-8.0 | 8.0-10.2/なし |
| cudnn | x | V5 | V2-5 | V7 |
| onnx | x | x | x | o |
| シーノ | x | o | o | o |
| Tensorflow | 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 | 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-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 | |
| ソネット | 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はMITライセンスを取得しています。