Github: https://github.com/ufoym/deepo
Deepoは一連のDocker画像で、
- あなたは深い学習の研究環境を素早く設定できます
- ほとんどすべての一般的に使用される深い学習フレームワークをサポートします
- GPUアクセラレーション (CUDAとcuDNNを含む)をサポートし、 CPU専用モードでも動作します
- Linux( CPUバージョン / GPUバージョン )、Windows( CPUバージョン )、OS X( CPUバージョン )で動作します。
それらのDockerfileジェネレータ
- レゴ様モジュールを使用して独自の環境をカスタマイズできます
- あなたの依存関係を自動的に解決する
目次
クイックスタート
GPUのバージョン
インストール
ステップ1. Dockerとnvidia-docker をインストールします 。
ステップ2. Docker Hubからオールインワンイメージを取得する
docker pull ufoym/deepo
使用法
これで、次のコマンドを試すことができます:
nvidia-docker run --rm ufoym/deepo nvidia-smi
これにより、Deepoはドッキング・コンテナの内部からGPUを使用できるようになります。 これで 問題が解決 しない場合は 、nvidia-docker GitHubの問題のセクションを 検索 してください 。多くのソリューションは既に文書化されています。 終了後自動的に削除されないコンテナへの対話型シェルを取得するにはdo
nvidia-docker run -it ufoym/deepo bash
ホスト(マシンまたはVM)とDeepoを使用しているコンテナ間でデータと設定を共有する場合は、-vオプションを使用します。
nvidia-docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo bash
これにより、ホストからの/host/data
がコンテナ内の/data
として表示され、 /host/config
は/config
として表示されます。 このような分離は、コンテナ化された実験が誤ったデータを上書きしたり使用したりする機会を減らします。
いくつかのフレームワーク(例えば、PyTorch)はプロセス間でデータを共有するために共有メモリを使用するので、マルチプロセッシングを使う場合、コンテナが実行するデフォルトの共有メモリセグメントサイズは不十分で、共有メモリサイズを--ipc=host
nvidia-docker run
ための--ipc=host
または--shm-size
コマンドラインオプション。
nvidia-docker run -it --ipc=host ufoym/deepo bash
CPUのバージョン
インストール
ステップ1. Docker をインストールします 。
ステップ2. Docker Hubからオールインワンイメージを取得する
docker 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
は/config
として表示されます。 このような分離は、コンテナ化された実験が誤ったデータを上書きしたり使用したりする機会を減らします。
いくつかのフレームワーク(例えばPyTorch)はプロセス間でデータを共有するために共有メモリを使用するので、マルチプロセッシングを使用する場合、コンテナが実行するデフォルトの共有メモリセグメントサイズは不十分で、共有メモリサイズを--ipc=host
または--shm-size
コマンドラインオプションを使用して--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 caffe2
$ caffe --version
caffe version 1.0.0
$ th
│ ______ __ | Torch7
│ /_ __/__ ________/ / | Scientific computing for Lua.
│ / / / _ \/ __/ __/ _ \ | Type ? for help
│ /_/ \___/_/ \__/_//_/ | https://github.com/torch
│ | http://torch.ch
│
│th>
カスタマイズ
クイックスタートで 述べたdocker pull ufoym/deepo
は、利用可能なすべての深い学習フレームワークを含む標準的なイメージを提供します。 独自の環境もカスタマイズできます。
オールインワンソリューションに不満はありますか?
オールインワンのイメージではなく、特定のフレームワークを好む場合は、フレームワークの名前のタグを追加するだけです。 例えばテンソルフローを取る:
docker pull ufoym/deepo:tensorflow
他のpythonのバージョン
すべてのPython関連の画像はデフォルトでPython 3.6
使用しています。 Python 3.6
に不満がある場合は、他のPythonバージョンを指定することもできます。
docker pull ufoym/deepo:py27
docker pull ufoym/deepo:tensorflow-py27
現在、 Python 2.7
とPython 3.6
をサポートしています。
使用可能なすべてのタグの完全なリストについては、 「 使用可能なタグ 」を参照してください 。 これらのあらかじめ構築された画像はすべて、 docker/Dockerfile.*
とcircle.yml
から構築されています。 これらのファイルの生成方法については、 circle.yml
docker/Dockerfile.*
およびcircle.yml
生成方法を参照してください。
ジュピターのサポート
ステップ1.ジュピターサポートでイメージをプルします。
docker pull ufoym/deepo:all-py36-jupyter
このタグは、 all-py36-jupyter
、 py36-jupyter
、 all-py27-jupyter
、またはpy27-jupyter
いずれかpy27-jupyter
。
ステップ2.イメージを実行する
nvidia-docker run -it -p 8888:8888 ufoym/deepo:all-py36-jupyter jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token= --notebook-dir='/root'
レゴ様モジュールを使って独自のカスタマイズされたイメージを作成する
ステップ1.発電機を準備する
git clone https://github.com/ufoym/deepo.git
cd deepo/generator
pip install -r requirements.txt
ステップ2.カスタマイズしたDockerファイルを生成する
たとえば、あなたがpytorch
とpytorch
を好きなら、
python generate.py Dockerfile pytorch lasagne
これは、pytorchとlasagneを構築するためのすべてを含むDockerfileを生成するはずです。 ジェネレータは自動依存処理を処理し、リストをトポロジ的にソートできることに注意してください。 したがって、依存関係やリストの順序がないことを心配する必要はありません。
Pythonのバージョンを指定することもできます:
python generate.py Dockerfile pytorch lasagne python==3.6
ステップ3. Dockerfileをビルドする
docker build -t my/deepo .
これはいくつかのライブラリを一からコンパイルするので、数分かかることがあります。
代替案との比較
。 | 現代的な深遠な学習 | dl-docker | ジュピターディープラーニング | ディープー |
---|---|---|---|---|
ubuntu | 16.04 | 14.04 | 14.04 | 16.04 |
クダ | 8.0 | 6.5-8.0 | 9.0 | |
狂った | v5 | v2-5 | v7 | |
テアノ | ||||
テンソルフロー | ||||
ソネット | ||||
ピーチ | ||||
ケラス | ||||
ラザニア | ||||
mxnet | ||||
cntk | ||||
チェーンャー | ||||
カフェ | ||||
カフェ2 | ||||
トーチ |
利用可能なタグ
。 | GPU / Python 3.6 | GPU / Python 2.7 | CPUのみ/ Python 3.6 | CPUのみ/ Python 2.7 |
---|---|---|---|---|
オールインワン | all-py36 latest all-py36 all |
all-py27 py27 |
all-py36-cpu all-cpu py36-cpu cpu |
all-py27-cpu py27-cpu |
ジュピターとオールインワン | all-py36-jupyter py36-jupyter |
all-py27-jupyter py27-jupyter |
all-py36-jupyter-cpu py36-jupyter-cpu |
all-py27-jupyter-cpu py27-jupyter-cpu |
テアノ | theano-py36 theano |
theano-py27 |
theano-py36-cpu theano-cpu |
theano-py27-cpu |
テンソルフロー | tensorflow-py36 tensorflow |
tensorflow-py27 |
tensorflow-py36-cpu tensorflow-cpu |
tensorflow-py27-cpu |
ソネット | sonnet-py36 sonnet |
sonnet-py27 |
sonnet-py36-cpu sonnet-cpu |
sonnet-py27-cpu |
ピーチ | pytorch-py36 pytorch |
pytorch-py27 |
pytorch-py36 pytorch |
pytorch-py27 |
ケラス | keras-py36 keras |
keras-py27 |
keras-py36-cpu keras-cpu keras-py36-cpu |
keras-py27-cpu |
ラザニア | lasagne-py36 |
lasagne-py27 |
lasagne-py36-cpu lasagne-cpu |
lasagne-py27-cpu |
mxnet | mxnet-py36 mxnet |
mxnet-py27 |
mxnet-py36-cpu mxnet-cpu |
mxnet-py27-cpu |
cntk | cntk-py36 cntk |
cntk-py27 |
cntk-py36-cpu cntk-cpu |
cntk-py27-cpu |
チェーンャー | chainer-py36 chainer |
chainer-py27 |
chainer-py36-cpu chainer-cpu |
chainer-py27-cpu |
カフェ | caffe-py36 caffe |
caffe-py27 |
caffe-py36-cpu caffe-cpu |
caffe-py27-cpu |
カフェ2 | caffe2-py36 caffe2 |
caffe2-py27 |
caffe2-py36-cpu caffe2-cpu |
caffe2-py27-cpu |
トーチ | torch |
torch |
torch-cpu |
torch-cpu |
貢献する
私たちはすべての貢献に感謝します。 あなたがバグフィックスを返すことを計画しているなら、それ以上の議論なしにそれをしてください。 新しい機能、ユーティリティ機能、拡張機能を提供する予定の場合は、まず問題を開いて、その機能について話し合ってください。