يرجى ملاحظة أن حرب إطار التعلم العميق قد انتهت ، لم يعد هذا المشروع يتم الحفاظ عليه.
Deepo هو إطار عمل مفتوح لتجميع صور Docker المتخصصة لأبحاث التعلم العميق دون ألم. يوفر "مجموعة LEGO" من العشرات من المكونات القياسية لإعداد أدوات التعلم العميق وإطار عمل لتجميعها في صور Docker مخصصة.
في قلب Deepo يوجد مولد Dockerfile
نقوم أيضًا بإعداد سلسلة من صور Docker التي تم بناؤها مسبقًا
docker pull ufoym/deepo للمستخدمين في الصين الذين قد يعانون من سرعات بطيئة عند سحب الصورة من سجل Docker العام ، يمكنك سحب صور deepo من مرآة سجل الصين من خلال تحديد المسار الكامل ، بما في ذلك السجل ، في أمر Docker Pull ، على سبيل المثال:
docker pull registry.docker-cn.com/ufoym/deepoالآن يمكنك تجربة هذا الأمر:
docker run --gpus all --rm ufoym/deepo nvidia-smiيجب أن يعمل هذا ويمكن Deepo من استخدام GPU من داخل حاوية Docker. إذا لم ينجح هذا ، فابحث في قسم المشكلات في 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 خيارات سطر الأوامر SSEM 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 خيارات سطر الأوامر SSEM 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 هذا يجب أن يولد dockerfile يحتوي على كل شيء لبناء pytorch و lasagne . لاحظ أن المولد يمكنه التعامل مع معالجة التبعية التلقائية وفرز القوائم طوبولوجيًا. لذلك لا داعي للقلق بشأن فقدان التبعيات وترتيب القائمة.
يمكنك أيضًا تحديد إصدار Python:
python generate.py Dockerfile pytorch lasagne python==3.6docker build -t my/deepo .قد يستغرق هذا عدة دقائق لأنه يجمع بعض المكتبات من الصفر.
| . | التعلم الحديث | DL-Docker | Jupyter-Deplealning | ديبو |
|---|---|---|---|---|
| أوبونتو | 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 | س |
| ثيانو | x | س | س | س |
| Tensorflow | س | س | س | س |
| السوناتة | x | x | x | س |
| Pytorch | x | x | x | س |
| كيراس | س | س | س | س |
| اللازانيا | x | س | س | س |
| mxnet | x | x | x | س |
| CNTK | x | x | x | س |
| سلسلة | x | x | x | س |
| الكافيين | س | س | س | س |
| Caffe2 | x | x | x | س |
| الشعلة | x | س | س | س |
| Darknet | x | x | x | س |
| paddlepaddle | x | x | x | س |
| . | CUDA 11.3 / Python 3.8 | وحدة المعالجة المركزية فقط / بيثون 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 |
| paddlepaddle | paddle-cu113 paddle | paddle-cpu |
| . | كودا 11.3 / بيثون 3.6 | كودا 11.1 / بيثون 3.6 | كودا 10.1 / بيثون 3.6 | CUDA 10.0 / Python 3.6 | كودا 9.0 / بيثون 3.6 | كودا 9.0 / بيثون 2.7 | وحدة المعالجة المركزية فقط / بيثون 3.6 | وحدة المعالجة المركزية فقط / بيثون 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}}
}
نحن نقدر جميع المساهمات. إذا كنت تخطط للمساهمة في إصلاح الأخطاء ، فيرجى القيام بذلك دون أي نقاش آخر. إذا كنت تخطط للمساهمة بميزات جديدة أو وظائف الأداة المساعدة أو الامتدادات ، فيرجى أولاً فتح مشكلة ومناقشة الميزة معنا.
ديبو هو معهد ماساتشوستس للتكنولوجيا مرخصة.