Thanks for tuning in to Google I/O. View all sessions on demandWatch on demand

عامل ميناء

يستخدم Docker الحاويات لإنشاء بيئات افتراضية تعزل تثبيت TensorFlow عن باقي النظام. يتم تشغيل برامج TensorFlow ضمن هذه البيئة الافتراضية التي يمكنها مشاركة الموارد مع الجهاز المضيف (الوصول إلى الدلائل ، واستخدام وحدة معالجة الرسومات ، والاتصال بالإنترنت ، وما إلى ذلك). يتم اختبار صور TensorFlow Docker لكل إصدار.

يعد Docker أسهل طريقة لتمكين دعم TensorFlow GPU على Linux نظرًا لأن برنامج تشغيل NVIDIA® GPU هو المطلوب فقط على الجهاز المضيف (لا يلزم تثبيت مجموعة أدوات NVIDIA® CUDA® ).

متطلبات TensorFlow Docker

  1. قم بتثبيت Docker على جهازك المضيف المحلي.
  2. لدعم GPU على Linux ، قم بتثبيت دعم NVIDIA Docker .
    • قم بتدوين إصدار Docker الخاص بك باستخدام docker -v . تتطلب الإصدارات الأقدم من 19.03 nvidia-docker2 و-- --runtime=nvidia flag. في الإصدارات التي تتضمن وبعد 19.03 ، ستستخدم حزمة مجموعة nvidia-container-toolkit وعلامة --gpus all . كلا الخيارين موثقان على الصفحة المرتبطة أعلاه.

قم بتنزيل صورة 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