يستخدم Docker الحاويات لإنشاء بيئات افتراضية تعزل تثبيت TensorFlow عن باقي النظام. يتم تشغيل برامج TensorFlow ضمن هذه البيئة الافتراضية التي يمكنها مشاركة الموارد مع الجهاز المضيف (الوصول إلى الدلائل ، واستخدام وحدة معالجة الرسومات ، والاتصال بالإنترنت ، وما إلى ذلك). يتم اختبار صور TensorFlow Docker لكل إصدار.
يعد Docker أسهل طريقة لتمكين دعم TensorFlow GPU على Linux نظرًا لأن برنامج تشغيل NVIDIA® GPU هو المطلوب فقط على الجهاز المضيف (لا يلزم تثبيت مجموعة أدوات NVIDIA® CUDA® ).
متطلبات TensorFlow Docker
- قم بتثبيت Docker على جهازك المضيف المحلي.
- لدعم GPU على Linux ، قم بتثبيت دعم NVIDIA Docker .
- قم بتدوين إصدار Docker الخاص بك باستخدام
docker -v
. تتطلب الإصدارات الأقدم من 19.03 nvidia-docker2 و----runtime=nvidia
flag. في الإصدارات التي تتضمن وبعد 19.03 ، ستستخدم حزمة مجموعةnvidia-container-toolkit
وعلامة--gpus all
. كلا الخيارين موثقان على الصفحة المرتبطة أعلاه.
- قم بتدوين إصدار Docker الخاص بك باستخدام
قم بتنزيل صورة TensorFlow Docker
توجد صور TensorFlow Docker الرسمية في مستودع Tensorflow / Tensorflow Docker Hub. يتم تمييز إصدارات الصور بالتنسيق التالي:
بطاقة شعار | وصف |
---|---|
latest | أحدث إصدار من الصورة الثنائية لوحدة المعالجة المركزية TensorFlow. تقصير. |
nightly | الإنشاءات الليلية لصورة TensorFlow. (غير مستقر.) |
version | حدد إصدار صورة TensorFlow الثنائية ، على سبيل المثال: 2.8.3 |
تحتوي كل علامة أساسية على متغيرات تضيف الوظائف أو تغيرها:
متغيرات العلامة | وصف |
---|---|
tag -gpu | إصدار العلامة المحددة مع دعم GPU. ( انظر أدناه ) |
tag -jupyter | إصدار العلامة المحدد مع Jupyter (يتضمن دفاتر ملاحظات TensorFlow التعليمية) |
يمكنك استخدام متغيرات متعددة في وقت واحد. على سبيل المثال ، يتم تنزيل الصور التالية من TensorFlow على جهازك:
docker pull tensorflow/tensorflow # latest stable release
docker pull tensorflow/tensorflow:devel-gpu # nightly dev release w/ GPU support
docker pull tensorflow/tensorflow:latest-gpu-jupyter # latest release w/ GPU support and Jupyter
ابدأ حاوية TensorFlow Docker
لبدء حاوية مكونة TensorFlow ، استخدم نموذج الأمر التالي:
docker run [-it] [--rm] [-p hostPort:containerPort] tensorflow/tensorflow[:tag] [command]
للحصول على التفاصيل ، راجع مرجع تشغيل عامل الإرساء .
أمثلة باستخدام صور CPU فقط
دعنا نتحقق من تثبيت TensorFlow باستخدام latest
صورة مميزة. يقوم Docker بتنزيل صورة TensorFlow جديدة عند تشغيلها لأول مرة:
docker run -it --rm tensorflow/tensorflow \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
دعنا نعرض المزيد من وصفات TensorFlow Docker. ابدأ جلسة bash
shell داخل حاوية مكونة TensorFlow:
docker run -it tensorflow/tensorflow bash
داخل الحاوية ، يمكنك بدء جلسة python
واستيراد TensorFlow.
لتشغيل برنامج TensorFlow تم تطويره على الجهاز المضيف داخل الحاوية ، قم بتثبيت دليل المضيف وتغيير دليل عمل الحاوية ( -v hostDir:containerDir -w workDir
):
docker run -it --rm -v $PWD:/tmp -w /tmp tensorflow/tensorflow python ./script.py
يمكن أن تظهر مشكلات الأذونات عندما يتم عرض الملفات التي تم إنشاؤها داخل الحاوية للمضيف. من الأفضل عادةً تحرير الملفات على النظام المضيف.
ابدأ خادم Jupyter Notebook باستخدام الإصدار الليلي من TensorFlow:
docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-jupyter
اتبع التعليمات وافتح عنوان URL في متصفح الويب المضيف: http://127.0.0.1:8888/?token=...
دعم GPU
يعد Docker أسهل طريقة لتشغيل TensorFlow على وحدة معالجة الرسومات نظرًا لأن الجهاز المضيف لا يتطلب سوى برنامج تشغيل NVIDIA® ( مجموعة أدوات NVIDIA® CUDA® غير مطلوبة).
قم بتثبيت Nvidia Container Toolkit لإضافة دعم NVIDIA® GPU إلى Docker. لا يتوفر nvidia-container-runtime
إلا لنظام Linux. راجع الأسئلة الشائعة حول دعم النظام الأساسي nvidia-container-runtime
للحصول على التفاصيل.
تحقق مما إذا كانت وحدة معالجة الرسومات متاحة:
lspci | grep -i nvidia
تحقق من تثبيت nvidia-docker
:
docker run --gpus all --rm nvidia/cuda nvidia-smi
أمثلة باستخدام الصور التي تدعم GPU
قم بتنزيل وتشغيل صورة TensorFlow تدعم GPU (قد يستغرق بضع دقائق):
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \ python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"
قد يستغرق الأمر بعض الوقت لإعداد الصورة الممكّنة لوحدة معالجة الرسومات. في حالة تشغيل البرامج النصية المستندة إلى GPU بشكل متكرر ، يمكنك استخدام docker exec
لإعادة استخدام الحاوية.
استخدم أحدث صورة GPU TensorFlow لبدء جلسة bash
shell في الحاوية:
docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash