בנה חבילת 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
(ההפעלה שלך עשויה להיות שונה):
הצג הפעלה לדוגמה של תצורה
python ./configure.py You have bazel 6.5.0 installed. Please specify the location of python. [Default is C:\Python311\python.exe]: Found possible Python library paths: C:\Python311\lib\site-packages Please input the desired Python library path to use. Default is [C:\Python311\lib\site-packages] Do you wish to build TensorFlow with ROCm support? [y/N]: No ROCm support will be enabled for TensorFlow. Warning: Cannot build with CUDA support on Windows. Starting in TF 2.11, CUDA build is not supported for Windows. To use TensorFlow GPU on Windows, you will need to build/install TensorFlow in WSL2. Do you want to use Clang to build TensorFlow? [Y/n]: Add "--config=win_clang" to compile TensorFlow with CLANG. Please specify the path to clang executable. [Default is C:\Program Files\LLVM\bin\clang.EXE]: You have Clang 17.0.6 installed. Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is /arch:AVX]: Would you like to override eigen strong inline for some C++ compilation to reduce the compilation time? [Y/n]: Eigen strong inline overridden. Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: Not configuring the WORKSPACE for Android builds. Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details. --config=mkl # Build with MKL support. --config=mkl_aarch64 # Build with oneDNN and Compute Library for the Arm Architecture (ACL). --config=monolithic # Config for mostly static monolithic build. --config=numa # Build with NUMA support. --config=dynamic_kernels # (Experimental) Build kernels into separate shared objects. --config=v1 # Build with TensorFlow 1 API instead of TF 2 API. Preconfigured Bazel build configs to DISABLE default on features: --config=nogcp # Disable GCP support. --config=nonccl # Disable NVIDIA NCCL support.
בנה והתקן את חבילת ה-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 |