בנה חבילת TensorFlow pip מהמקור והתקן אותה ב-Windows.
התקנה עבור Windows
התקן את כלי הבנייה הבאים כדי להגדיר את סביבת הפיתוח של Windows שלך.
התקן את Python ואת התלות בחבילת TensorFlow
התקן מהדורת Python 3.9+ 64 סיביות עבור Windows . בחר pip כתכונה אופציונלית והוסף אותו למשתנה הסביבתי %PATH%
שלך.
התקן את התלות של חבילת TensorFlow pip :
pip3 install -U 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 -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
התקן את Visual C++ Build Tools 2022
התקן את כלי הבנייה של Visual C++ 2022 . זה מגיע עם Visual Studio Community 2022 אך ניתן להתקין אותו בנפרד:
- עבור אל ההורדות של Visual Studio ,
- בחר כלים עבור Visual Studio או כלים אחרים, Framework והפצה מחדש ,
- הורד והתקן:
- בניית כלים עבור Visual Studio 2022
- Microsoft Visual C++ ניתנים להפצה מחדש עבור Visual Studio 2022
התקן את LLVM
- עבור אל ההורדות של LLVM ,
- הורד והתקן LLVM תואם Windows ב-C:/Program Files/LLVM, למשל, LLVM-17.0.6-win64.exe
התקן תמיכת 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 כדי למנוע בעיות ביצירת החבילות: (אם הפקודות שלהלן הוגדרו בזמן התקנת החבילות, נא להתעלם מהן). הפעל set
כדי לבדוק אם כל הנתיבים הוגדרו כהלכה, הפעל echo %Environmental Variable%
למשל, echo %BAZEL_VC%
כדי לבדוק את הנתיב שהוגדר עבור משתנה סביבתי ספציפי
נתיב Python הגדרת בעיה tensorflow:issue#59943 , tensorflow:issue#9436 , tensorflow:issue#60083
set PATH=path/to/python;%PATH% # [e.g. (C:/Python311)] set PATH=path/to/python/Scripts;%PATH% # [e.g. (C:/Python311/Scripts)] set PYTHON_BIN_PATH=path/to/python_virtualenv/Scripts/python.exe set PYTHON_LIB_PATH=path/to/python virtualenv/lib/site-packages set PYTHON_DIRECTORY=path/to/python_virtualenv/Scripts
נתיב Bazel/MSVC/CLANG הגדרת בעיה tensorflow:issue#54578
set BAZEL_SH=C:/msys64/usr/bin/bash.exe set BAZEL_VS=C:/Program Files/Microsoft Visual Studio/2022/BuildTools set BAZEL_VC=C:/Program Files/Microsoft Visual Studio/2022/BuildTools/VC set Bazel_LLVM=C:/Program Files/LLVM (explicitly tell Bazel where LLVM is installed by BAZEL_LLVM, needed while using CLANG) set PATH=C:/Program Files/LLVM/bin;%PATH% (Optional, needed while using CLANG as Compiler)
אופציונלי: הגדר את ה-build
בניית TensorFlow מוגדרת על ידי קובץ .bazelrc
בספריית השורש של המאגר. ניתן להשתמש בסקריפטים ./configure
או ./configure.py
כדי להתאים הגדרות נפוצות.
אם אתה צריך לשנות את התצורה, הפעל את הסקריפט ./configure
מספריית השורש של המאגר.
python ./configure.py
סקריפט זה מבקש ממך את מיקום התלות של TensorFlow ומבקש אפשרויות תצורת בנייה נוספות (דגלים מהדר, למשל). להלן תצוגה לדוגמה של python ./configure.py
(ההפעלה שלך עשויה להיות שונה):
בנה והתקן את חבילת ה-pip
חבילת ה-pip בנויה בשני שלבים. פקודת bazel build
יוצרת תוכנית "בונה חבילות". לאחר מכן אתה מפעיל את בונה החבילות כדי ליצור את החבילה.
בנה את בונה החבילות
tensorflow:master repo עודכן ל-build 2.x כברירת מחדל. התקן את Bazel והשתמש ב- bazel build
כדי ליצור את בונה החבילות של TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
מעבד בלבד
השתמש ב- bazel
כדי להפוך את בונה החבילות של TensorFlow עם תמיכה במעבד בלבד:
בנה עם MSVC
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
בנה עם CLANG
השתמש ב- --config= win_clang
כדי לבנות TenorFlow עם מהדר CLANG:
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
תמיכה ב-GPU
כדי להפוך את בונה החבילות של TensorFlow עם תמיכה ב-GPU:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
פקודות לניקוי המטמון של bazel כדי לפתור שגיאות עקב נתונים לא חוקיים או מיושנים במטמון, bazel clean עם דגל --expunge מסיר קבצים לצמיתות
bazel clean bazel clean --expunge
אפשרויות בנייה של 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.
בנה את החבילה
כדי לבנות חבילת pip, עליך לציין את הדגל --repo_env=WHEEL_NAME. בהתאם לשם שסופק, החבילה תיווצר. לְדוּגמָה:
כדי לבנות חבילת מעבד tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
כדי לבנות חבילה לילית, הגדר tf_nightly
במקום tensorflow
, למשל כדי לבנות חבילה לילית של CPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
כתוצאה מכך, הגלגל שנוצר יהיה ממוקם ב
bazel-bin/tensorflow/tools/pip_package/wheel_house/
התקן את החבילה
שם הקובץ של קובץ .whl
שנוצר תלוי בגרסת TensorFlow ובפלטפורמה שלך. השתמש pip install
כדי להתקין את החבילה, לדוגמה:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.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:\Python\python.exe
, הגדר את PATH
שלך עם:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$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.17.0 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.16.1 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.15.0 | 3.9-3.11 | MSVC 2019 | Bazel 6.1.0 |
tensorflow-2.14.0 | 3.9-3.11 | MSVC 2019 | Bazel 6.1.0 |
tensorflow-2.12.0 | 3.8-3.11 | MSVC 2019 | Bazel 5.3.0 |
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.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 |