Docker

Docker משתמש בקונטיינרים כדי ליצור סביבות וירטואליות המבודדות התקנת TensorFlow משאר המערכת. תוכניות TensorFlow מופעלות בתוך סביבה וירטואלית זו שיכולה לחלוק משאבים עם המחשב המארח שלה (גישה לספריות, שימוש ב-GPU, להתחבר לאינטרנט וכו'). התמונות של TensorFlow Docker נבדקות עבור כל מהדורה.

Docker הוא הדרך הקלה ביותר לאפשר תמיכת TensorFlow GPU ב-Linux מכיוון שנדרש רק מנהל ההתקן של NVIDIA® GPU במחשב המארח (אין צורך להתקין את NVIDIA® CUDA® Toolkit ).

דרישות TensorFlow Docker

  1. התקן את Docker במחשב המארח המקומי שלך.
  2. לתמיכה ב-GPU ב-Linux, התקן תמיכת NVIDIA Docker .
    • שים לב לגרסת Docker שלך עם docker -v . גרסאות קודמות מ -19.03 דורשות את nvidia-docker2 ואת הדגל --runtime=nvidia . בגרסאות כולל ואחרי 19.03, תשתמש בחבילת nvidia-container-toolkit ובדגל --gpus all . שתי האפשרויות מתועדות בדף המקושר למעלה.

הורד תמונת TensorFlow Docker

התמונות הרשמיות של TensorFlow Docker ממוקמות במאגר tensorflow/tensorflow Docker Hub. גרסאות תמונות מתויגות בפורמט הבא:

תָג תיאור
latest המהדורה האחרונה של תמונה בינארית של TensorFlow CPU. בְּרִירַת מֶחדָל.
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]

לפרטים, עיין בהפניה להפעלת docker .

דוגמאות לשימוש בתמונות מעבד בלבד

בואו נאמת את התקנת 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 בתוך מיכל בתצורת 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

בצע את ההוראות ופתח את כתובת האתר בדפדפן האינטרנט המארח שלך: http://127.0.0.1:8888/?token=...

תמיכה ב-GPU

Docker היא הדרך הקלה ביותר להפעיל את TensorFlow על GPU מכיוון שהמכונה המארח דורשת רק את מנהל ההתקן של NVIDIA® (אין צורך בערכת הכלים של NVIDIA® CUDA® ).

התקן את Nvidia Container Toolkit כדי להוסיף תמיכה ב-NVIDIA® GPU ל-Docker. nvidia-container-runtime זמין רק עבור לינוקס. עיין בשאלות הנפוצות בנושא תמיכה בפלטפורמת nvidia-container-runtime לפרטים.

בדוק אם GPU זמין:

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. אם אתה מריץ שוב ושוב סקריפטים מבוססי GPU, אתה יכול להשתמש docker exec כדי לעשות שימוש חוזר בקונטיינר.

השתמש בתמונת ה-GPU העדכנית של TensorFlow כדי להתחיל סשן מעטפת bash במיכל:

docker run --gpus all -it tensorflow/tensorflow:latest-gpu bash