Docker משתמש בקונטיינרים כדי ליצור סביבות וירטואליות המבודדות התקנת TensorFlow משאר המערכת. תוכניות TensorFlow מופעלות בתוך סביבה וירטואלית זו שיכולה לחלוק משאבים עם המחשב המארח שלה (גישה לספריות, שימוש ב-GPU, להתחבר לאינטרנט וכו'). התמונות של TensorFlow Docker נבדקות עבור כל מהדורה.
Docker הוא הדרך הקלה ביותר לאפשר תמיכת TensorFlow GPU ב-Linux מכיוון שנדרש רק מנהל ההתקן של NVIDIA® GPU במחשב המארח (אין צורך להתקין את NVIDIA® CUDA® Toolkit ).
דרישות TensorFlow Docker
- התקן את Docker במחשב המארח המקומי שלך.
- לתמיכה ב-GPU ב-Linux, התקן תמיכת NVIDIA Docker .
- שים לב לגרסת Docker שלך עם
docker -v
. גרסאות קודמות מ -19.03 דורשות את nvidia-docker2 ואת הדגל--runtime=nvidia
. בגרסאות כולל ואחרי 19.03, תשתמש בחבילתnvidia-container-toolkit
ובדגל--gpus all
. שתי האפשרויות מתועדות בדף המקושר למעלה.
- שים לב לגרסת Docker שלך עם
הורד תמונת 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