בנה ממקור ב-Windows

בנה חבילת 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 אך ניתן להתקין אותו בנפרד:

  1. עבור אל ההורדות של Visual Studio ,
  2. בחר כלים עבור Visual Studio או כלים אחרים, Framework והפצה מחדש ,
  3. הורד והתקן:
    • בניית כלים עבור Visual Studio 2022
    • ניתנים להפצה מחדש של Microsoft Visual C++ עבור Visual Studio 2022

התקן את LLVM

  1. עבור אל ההורדות של LLVM ,
  2. הורד והתקן 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 separator
export 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.18.0 3.9-3.12 CLANG 17.0.6 Bazel 6.5.0
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 בזל 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