דוקר

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

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

דרישות 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. בְּרִירַת מֶחדָל.
nightly מבנים ליליים של תמונת TensorFlow. (לֹא יַצִיב.)
version ציין את הגרסה של התמונה הבינארית TensorFlow, למשל: 2.1.0
devel בניית לילה של סביבת פיתוח master של TensorFlow. כולל קוד מקור של TensorFlow.
custom-op תמונה ניסיונית מיוחדת לפיתוח אופס מותאם אישית של TF. מידע נוסף כאן .

לכל תג בסיס יש גרסאות שמוסיפות או משנות פונקציונליות:

וריאציות תגים תיאור
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]

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

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

בואו נאמת את התקנת 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 ספריית העבודה של המכולה ( -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 כדי להוסיף תמיכה ב- 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