Bitte beachten Sie, dass der Krieg des Deep Learning Framework vorbei ist, dieses Projekt wird nicht mehr beibehalten.
Deepo ist ein offener Rahmen, um spezielle Docker -Bilder für Deep Learning -Forschung ohne Schmerzen zusammenzustellen. Es bietet ein „LEGO -Set“ von Dutzenden von Standardkomponenten für die Vorbereitung von Deep -Learning -Tools und einen Rahmen, um sie in benutzerdefinierte Docker -Bilder zusammenzustellen.
Im Kern von Deepo befindet sich ein Dockerfile -Generator, der
Wir bereiten auch eine Reihe von vorgefertigten Docker-Bildern vor, die
docker pull ufoym/deepo Für Benutzer in China, die beim Abziehen des Bildes aus dem öffentlichen Docker -Register möglicherweise langsame Geschwindigkeiten leiden, können Sie deepo den vollständigen Pfad, einschließlich der Registrierung, in Ihrem Docker Pull -Befehl aus dem chinesischen Registrierungsspiegel angeben, zum Beispiel:
docker pull registry.docker-cn.com/ufoym/deepoJetzt können Sie diesen Befehl ausprobieren:
docker run --gpus all --rm ufoym/deepo nvidia-smiDies sollte funktionieren und ermöglicht Deepo, die GPU in einem Docker -Container aus zu verwenden. Wenn dies nicht funktioniert, durchsuchen Sie den Abschnitt "Ausgaben" im Nvidia-Docker GitHub-viele Lösungen sind bereits dokumentiert. Um eine interaktive Schale in einen Behälter zu bringen, der nach dem Beenden nicht automatisch gelöscht wird
docker run --gpus all -it ufoym/deepo bashWenn Sie Ihre Daten und Konfigurationen zwischen dem Host (Ihrem Computer oder VM) und dem Container, in dem Sie Deepo verwenden, teilen möchten, verwenden Sie die Option -V, z. B.
docker run --gpus all -it -v /host/data:/data -v /host/config:/config ufoym/deepo bash Dadurch wird /host/data aus dem Host als /data im Container und /host/config AS /config . Eine solche Isolation verringert die Chancen Ihrer Container -Experimente überschreiben oder verwenden falsche Daten.
Bitte beachten Sie, dass einige Frameworks (z. B. Pytorch) freigegebenen Speicher verwenden, um Daten zwischen den Prozessen zu teilen. Wenn also die Multiprozessierung verwendet wird, ist die Standardgröße für gemeinsam genutzte Speichersegments, mit der Container ausgeführt wird, nicht aus, und Sie sollten die gemeinsame Speichergröße mit --ipc=host oder --shm-size -Befehlszeilenoptionen erhöhen, um docker run zu docken.
docker run --gpus all -it --ipc=host ufoym/deepo bashdocker pull ufoym/deepo:cpuJetzt können Sie diesen Befehl ausprobieren:
docker run -it ufoym/deepo:cpu bashWenn Sie Ihre Daten und Konfigurationen zwischen dem Host (Ihrem Computer oder VM) und dem Container, in dem Sie Deepo verwenden, teilen möchten, verwenden Sie die Option -V, z. B.
docker run -it -v /host/data:/data -v /host/config:/config ufoym/deepo:cpu bash Dadurch wird /host/data aus dem Host als /data im Container und /host/config AS /config . Eine solche Isolation verringert die Chancen Ihrer Container -Experimente überschreiben oder verwenden falsche Daten.
Bitte beachten Sie, dass einige Frameworks (z. B. Pytorch) freigegebenen Speicher verwenden, um Daten zwischen den Prozessen zu teilen. Wenn also die Multiprozessierung verwendet wird, ist die Standardgröße für gemeinsam genutzte Speichersegments, mit der Container ausgeführt wird, nicht aus, und Sie sollten die gemeinsame Speichergröße mit --ipc=host oder --shm-size -Befehlszeilenoptionen erhöhen, um docker run zu docken.
docker run -it --ipc=host ufoym/deepo:cpu bashSie sind jetzt bereit, Ihre Reise zu beginnen.
$ 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>
Beachten Sie, dass docker pull ufoym/deepo der in Quick Start erwähnt wurde, ein Standardbild bietet, das alle verfügbaren Deep Learning -Frameworks enthält. Sie können auch Ihre eigene Umgebung anpassen.
Wenn Sie ein bestimmtes Framework und nicht ein All-in-One-Bild bevorzugen, fügen Sie einfach ein Tag mit dem Namen des Frameworks an. Nehmen Sie zum Beispiel 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 Zum Beispiel, wenn Sie pytorch und lasagne mögen, dann
python generate.py Dockerfile pytorch lasagneoder mit Cuda 11.1 und Cudnn 8
python generate.py Dockerfile pytorch lasagne --cuda-ver 11.1 --cudnn-ver 8 Dies sollte eine Dockerfile erzeugen, die alles für den Bau pytorch und lasagne enthält. Beachten Sie, dass der Generator die automatische Abhängigkeitsverarbeitung verarbeiten und die Listen topologisch sortieren kann. Sie müssen sich also keine Sorgen über fehlende Abhängigkeiten und die Listenorder machen.
Sie können auch die Version von Python angeben:
python generate.py Dockerfile pytorch lasagne python==3.6docker build -t my/deepo .Dies kann einige Minuten dauern, da einige Bibliotheken von Grund auf neu erfasst werden.
| . | moderne tiefe Lernung | 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/Keine |
| Cudnn | X | v5 | V2-5 | v7 |
| Onnx | X | X | X | O |
| Theano | X | O | O | O |
| Tensorflow | O | O | O | O |
| Sonett | X | X | X | O |
| Pytorch | X | X | X | O |
| Keras | O | O | O | O |
| Lasagne | X | O | O | O |
| mxnet | X | X | X | O |
| cntk | X | X | X | O |
| Kette | X | X | X | O |
| Kaffe | O | O | O | O |
| Caffe2 | X | X | X | O |
| Fackel | X | O | O | O |
| Darknet | X | X | X | O |
| Paddlepaddle | X | X | X | O |
| . | CUDA 11,3 / Python 3.8 | CPU-Nur-Python 3.8 |
|---|---|---|
| All-in-One | 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 | keras-py38-cu113 keras-py38 keras | keras-py38-cpu keras-cpu |
| Mxnet | mxnet-py38-cu113 mxnet-py38 mxnet | mxnet-py38-cpu mxnet-cpu |
| Kette | chainer-py38-cu113 chainer-py38 chainer | chainer-py38-cpu chainer-cpu |
| Darknet | darknet-cu113 darknet | darknet-cpu |
| Paddlepaddle | 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-Nur-Python 3.6 | CPU-Nur-Python 2.7 |
|---|---|---|---|---|---|---|---|---|
| All-in-One | 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 | |
| All-in-One mit 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 | tensorflow-py36-cu113 | tensorflow-py36-cu111 | tensorflow-py36-cu101 | tensorflow-py36-cu100 | tensorflow-py36-cu90 | tensorflow-py27-cu90 tensorflow-py27 | tensorflow-py27-cpu | |
| Sonett | 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 | keras-py36-cu113 | keras-py36-cu111 | keras-py36-cu101 | keras-py36-cu100 | keras-py36-cu90 | keras-py27-cu90 keras-py27 | keras-py27-cpu | |
| Lasagne | 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 | |
| Kette | chainer-py36-cu113 | chainer-py36-cu111 | chainer-py36-cu101 | chainer-py36-cu100 | chainer-py36-cu90 | chainer-py27-cu90 chainer-py27 | chainer-py27-cpu | |
| Kaffe | 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 | ||||
| Fackel | 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}}
}
Wir schätzen alle Beiträge. Wenn Sie planen, Back-Bug-Fixes beizutragen, tun Sie dies bitte ohne weitere Diskussion. Wenn Sie vorhaben, neue Funktionen, Versorgungsfunktionen oder Erweiterungen beizutragen, eröffnen Sie bitte zunächst ein Problem und diskutieren Sie die Funktion mit uns.
Deepo ist MIT lizenziert.