בנה חבילת TensorFlow pip מהמקור והתקן אותה ב-Windows.
התקנה עבור Windows
התקן את כלי הבנייה הבאים כדי להגדיר את סביבת הפיתוח של Windows שלך.
התקן את Python ואת התלות בחבילת TensorFlow
התקן מהדורת Python 3.7+ 64 סיביות עבור Windows . בחר pip כתכונה אופציונלית והוסף אותו למשתנה הסביבתי %PATH%
שלך.
התקן את התלות של חבילת TensorFlow pip :
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
התלות רשומה בקובץ setup.py
תחת REQUIRED_PACKAGES
.
התקן את Bazel
התקן את Bazel , כלי הבנייה המשמש להידור של TensorFlow. עבור גרסת Bazel, ראה את תצורות ה-build שנבדקו עבור Windows. הגדר את Bazel לבנות C++ .
הוסף את המיקום של קובץ ההפעלה של Bazel למשתנה הסביבה %PATH%
שלך.
התקן את MSYS2
התקן את MSYS2 עבור כלי הפח הדרושים לבניית TensorFlow. אם MSYS2 מותקן ב- C:\msys64
, הוסף את C:\msys64\usr\bin
למשתנה הסביבה %PATH%
שלך. לאחר מכן, באמצעות cmd.exe
, הרץ:
pacman -S git patch unzip
התקן את Visual C++ Build Tools 2019
התקן את כלי הבנייה של Visual C++ 2019 . זה מגיע עם Visual Studio 2019 אך ניתן להתקין אותו בנפרד:
- עבור אל ההורדות של Visual Studio ,
- בחר ניתנים להפצה מחדש וכלי בנייה ,
- הורד והתקן:
- Microsoft Visual C++ 2019 ניתן להפצה מחדש
- Microsoft Build Tools 2019
התקן תמיכת GPU (אופציונלי)
עיין במדריך התמיכה של Windows GPU להתקנת מנהלי ההתקן ותוכנות נוספות הנדרשות להפעלת TensorFlow על GPU.
הורד את קוד המקור של TensorFlow
השתמש ב- Git כדי לשכפל את מאגר TensorFlow ( git
מותקן עם MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
ברירת המחדל של ה-repo הוא ענף הפיתוח master
. אתה יכול גם לבדוק סניף שחרור לבניית:
git checkout branch_name # r1.9, r1.10, etc.
אופציונלי: הגדר את ה-build
בניית TensorFlow מוגדרת על ידי קובץ .bazelrc
בספריית השורש של המאגר. ניתן להשתמש בסקריפטים ./configure
או ./configure.py
כדי להתאים הגדרות נפוצות.
אם אתה צריך לשנות את התצורה, הפעל את הסקריפט ./configure
מספריית השורש של המאגר.
python ./configure.py
סקריפט זה מבקש ממך את מיקום התלות של TensorFlow ומבקש אפשרויות תצורת בנייה נוספות (דגלים מהדר, למשל). להלן תצוגה לדוגמה של python ./configure.py
(ההפעלה שלך עשויה להיות שונה):
אפשרויות תצורה
לתמיכה ב-GPU , ציין את הגרסאות של CUDA ו-cuDNN. אם למערכת שלך מותקנות מספר גרסאות של CUDA או cuDNN, הגדר במפורש את הגרסה במקום להסתמך על ברירת המחדל. ./configure.py
יוצר קישורים סמליים לספריות ה-CUDA של המערכת שלך - כך שאם תעדכן את נתיבי ספריית ה-CUDA שלך, יש להפעיל שוב את שלב ההגדרה הזה לפני הבנייה.
בנה והתקן את חבילת ה-pip
חבילת ה-pip נבנית בשני שלבים. פקודות bazel build
יוצרות תוכנית "בונה חבילות". לאחר מכן אתה מפעיל את בונה החבילות כדי ליצור את החבילה.
בנה את בונה החבילות
tensorflow:master repo עודכן ל-build 2.x כברירת מחדל. התקן את Bazel והשתמש ב- bazel build
כדי ליצור את בונה החבילות של TensorFlow.
bazel build //tensorflow/tools/pip_package:build_pip_package
מעבד בלבד
השתמש bazel
כדי להפוך את בונה החבילות של TensorFlow עם תמיכה במעבד בלבד:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
תמיכה ב-GPU
כדי להפוך את בונה החבילות של TensorFlow עם תמיכה ב-GPU:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
אפשרויות בנייה של Bazel
השתמש באפשרות זו בעת בנייה כדי למנוע בעיות ביצירת חבילה: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
עיין בהפניה לשורת הפקודה של Bazel עבור אפשרויות בנייה .
בניית TensorFlow ממקור יכולה להשתמש בהרבה זיכרון RAM. אם המערכת שלך מוגבלת בזיכרון, הגבל את השימוש ב-RAM של Bazel באמצעות: --local_ram_resources=2048
.
אם בונים עם תמיכה ב-GPU, הוסף --copt=-nvcc_options=disable-warnings
כדי לדכא הודעות אזהרה של nvcc.
בנה את החבילה
הפקודה bazel build
יוצרת קובץ הפעלה בשם build_pip_package
- זו התוכנית שבונה את חבילת pip
. לדוגמה, הדבר הבא בונה חבילת .whl
C:/tmp/tensorflow_pkg
:
bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg
למרות שניתן לבנות גם תצורות CUDA וגם תצורות שאינן CUDA תחת אותו עץ מקור, אנו ממליצים להפעיל bazel clean
בעת מעבר בין שתי התצורות הללו באותו עץ מקור.
התקן את החבילה
שם הקובץ של קובץ ה- .whl
שנוצר תלוי בגרסת TensorFlow ובפלטפורמה שלך. השתמש pip3 install
כדי להתקין את החבילה, לדוגמה:
pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl
בנה באמצעות מעטפת MSYS
ניתן לבנות את TensorFlow גם באמצעות מעטפת MSYS. בצע את השינויים המפורטים להלן, ולאחר מכן עקוב אחר ההוראות הקודמות עבור שורת הפקודה המקורית של Windows ( cmd.exe
).
השבת המרת נתיב MSYS
MSYS ממירה אוטומטית ארגומנטים שנראים כמו נתיבי Unix לנתיבי Windows, וזה לא עובד עם bazel
. (התווית //path/to:bin
נחשבת לנתיב אבסולוטי של יוניקס מכיוון שהיא מתחילה בקו נטוי.)
export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"
הגדר את ה-PATH שלך
הוסף את ספריות ההתקנה של Bazel ו-Python למשתנה הסביבתי $PATH
שלך. אם Bazel מותקן ב- C:\tools\bazel.exe
, ו-Python ל- C:\Python36\python.exe
, הגדר את ה- PATH
שלך עם:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/Python36:$PATH"
לתמיכה ב-GPU, הוסף את ספריות ה-CUDA וה-cuDNN bin ל- $PATH
שלך:
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin:$PATH"
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/extras/CUPTI/libx64:$PATH"
export PATH="/c/tools/cuda/bin:$PATH"
תצורות בנייה נבדקו
מעבד
גִרְסָה | גרסת פייתון | מַהְדֵר | בניית כלים |
---|---|---|---|
tensorflow-2.11.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.3.0 |
tensorflow-2.10.0 | 3.7-3.10 | MSVC 2019 | בזל 5.1.1 |
tensorflow-2.9.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.0.0 |
tensorflow-2.8.0 | 3.7-3.10 | MSVC 2019 | בזל 4.2.1 |
tensorflow-2.7.0 | 3.7-3.9 | MSVC 2019 | בזל 3.7.2 |
tensorflow-2.6.0 | 3.6-3.9 | MSVC 2019 | בזל 3.7.2 |
tensorflow-2.5.0 | 3.6-3.9 | MSVC 2019 | בזל 3.7.2 |
tensorflow-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 |
tensorflow-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 |
tensorflow-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 |
tensorflow-2.1.0 | 3.5-3.7 | MSVC 2019 | בזל 0.27.1-0.29.1 |
tensorflow-2.0.0 | 3.5-3.7 | MSVC 2017 | בזל 0.26.1 |
tensorflow-1.15.0 | 3.5-3.7 | MSVC 2017 | בזל 0.26.1 |
tensorflow-1.14.0 | 3.5-3.7 | MSVC 2017 | בזל 0.24.1-0.25.2 |
tensorflow-1.13.0 | 3.5-3.7 | עדכון 3 של MSVC 2015 | בזל 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | בזל 0.15.0 |
tensorflow-1.11.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | בזל 0.15.0 |
tensorflow-1.10.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3.5 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3.5 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 |
GPU
גִרְסָה | גרסת פייתון | מַהְדֵר | בניית כלים | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.11.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.3.0 | 8.1 | 11.2 |
tensorflow_gpu-2.10.0 | 3.7-3.10 | MSVC 2019 | בזל 5.1.1 | 8.1 | 11.2 |
tensorflow_gpu-2.9.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.0.0 | 8.1 | 11.2 |
tensorflow_gpu-2.8.0 | 3.7-3.10 | MSVC 2019 | בזל 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3.7-3.9 | MSVC 2019 | בזל 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.6.0 | 3.6-3.9 | MSVC 2019 | בזל 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3.6-3.9 | MSVC 2019 | בזל 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.4.0 | 3.6-3.8 | MSVC 2019 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 3.1.0 | 7.6 | 10.1 |
tensorflow_gpu-2.2.0 | 3.5-3.8 | MSVC 2019 | Bazel 2.0.0 | 7.6 | 10.1 |
tensorflow_gpu-2.1.0 | 3.5-3.7 | MSVC 2019 | בזל 0.27.1-0.29.1 | 7.6 | 10.1 |
tensorflow_gpu-2.0.0 | 3.5-3.7 | MSVC 2017 | בזל 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | בזל 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.14.0 | 3.5-3.7 | MSVC 2017 | בזל 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3.5-3.7 | עדכון 3 של MSVC 2015 | בזל 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | בזל 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | בזל 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | עדכון 3 של MSVC 2015 | Cmake v3.6.3 | 5.1 | 8 |