בנה ממקור ב-Windows

בנה חבילת pip של TensorFlow מהמקור והתקן אותה על 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 , כלי הבנייה המשמש לקימפול TensorFlow. עבור גרסת Bazel, עיין בתצורות הבנייה שנבדקו עבור Windows. קבע את התצורה של Bazel לבניית C++ .

הוסף את מיקום קובץ ההפעלה של Bazel למשתנה הסביבה %PATH% שלך.

התקנת MSYS2

התקן את MSYS2 עבור כלי ה-bin הדרושים לבניית 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++ 2022

התקן את כלי הבנייה של Visual C++ 2022. כלי זה מגיע עם Visual Studio Community 2022 אך ניתן להתקין אותו בנפרד:

  1. עבור אל הורדות Visual Studio ,
  2. בחר כלים עבור Visual Studio או כלים אחרים, Framework ו-Redistributables ,
  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 (אופציונלי)

עיין במדריך התמיכה של GPU של Windows כדי להתקין את מנהלי ההתקנים והתוכנות הנוספות הנדרשות להפעלת TensorFlow על GPU.

הורד את קוד המקור של TensorFlow

השתמש ב-Git כדי לשכפל את מאגר TensorFlow ( git מותקן עם MSYS2):

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

ברירת המחדל של המאגר היא ענף פיתוח master . ניתן גם לבדוק ענף שחרור כדי לבנות:

git checkout branch_name  # r1.9, r1.10, etc.

אופציונלי: הגדרת משתנה סביבתי

הפעל את הפקודות הבאות לפני הפעלת פקודת הבנייה כדי למנוע בעיות ביצירת חבילות: (אם הפקודות שלהלן הוגדרו בעת התקנת החבילות, אנא התעלם מהן). הפעל את הפקודה set כדי לבדוק אם כל הנתיבים הוגדרו כהלכה, הפעל את הפקודה echo %Environmental Variable% לדוגמה, echo %BAZEL_VC% כדי לבדוק את הנתיב שהוגדר עבור משתנה סביבתי ספציפי.

בעיית הגדרת נתיב בפייתון 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:בעיה#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)

אופציונלי: הגדרת הבנייה

קבצי TensorFlow מוגדרים על ידי קובץ ה-. .bazelrc בספריית השורש של המאגר. ניתן להשתמש בסקריפטים ./configure או ./configure.py כדי להתאים הגדרות נפוצות.

אם עליך לשנות את התצורה, הפעל את הסקריפט ./configure מספריית השורש של המאגר.

python ./configure.py

סקריפט זה מבקש ממך את מיקום תלויות TensorFlow ומבקש אפשרויות תצורה נוספות של בנייה (דגלי מהדר, לדוגמה). להלן דוגמה להרצה של python ./configure.py (ההפעלה שלך עשויה להיות שונה):

בנה והתקן את חבילת pip

חבילת pip נבנית בשני שלבים. פקודת bazel build יוצרת תוכנית "package-builder". לאחר מכן מפעילים את package-builder כדי ליצור את החבילה.

בנה את בונה החבילות

מאגר tensorflow:master עודכן לגרסה 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  

אפשרויות בנייה של באזל

השתמש באפשרות זו בעת בנייה כדי להימנע מבעיות ביצירת חבילות: 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. בהתאם לשם שסופק, החבילה תיווצר. לדוגמה:

כדי לבנות חבילת CPU של tensorflow:

bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu

כדי לבנות חבילת nightly, יש להגדיר tf_nightly במקום tensorflow , לדוגמה כדי לבנות חבילת nightly של המעבד:

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 ממיר אוטומטית ארגומנטים שנראים כמו נתיבי יוניקס לנתיבי חלונות, וזה לא עובד עם bazel . (התווית //path/to:bin נחשבת לנתיב מוחלט של יוניקס מכיוון שהיא מתחילה בקו נטוי.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

הגדר את הנתיב שלך

הוסף את ספריות ההתקנה של 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, הוסף את ספריות ה-bin של CUDA ו-cuDNN ל- $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"

תצורות בנייה שנבדקו

מעבד

גִרְסָה גרסת פייתון מַהְדֵר כלי בניית
זרימת טנזור-2.21.0 3.10-3.13 קלאנג 18.1.4 באזל 7.4.1
זרימת טנזור-2.20.0 3.9-3.13 קלאנג 18.1.4 באזל 7.4.1
זרימת טנזור-2.19.0 3.9-3.12 קלאנג 18.1.4 באזל 6.5.0
זרימת טנזור-2.18.0 3.9-3.12 קלאנג 17.0.6 באזל 6.5.0
זרימת טנזור-2.17.0 3.9-3.12 קלאנג 17.0.6 באזל 6.5.0
זרימת טנזור-2.16.1 3.9-3.12 קלאנג 17.0.6 באזל 6.5.0
זרימת טנזור-2.15.0 3.9-3.11 MSVC 2019 באזל 6.1.0
זרימת טנזור-2.14.0 3.9-3.11 MSVC 2019 באזל 6.1.0
זרימת טנזור-2.12.0 3.8-3.11 MSVC 2019 באזל 5.3.0
זרימת טנזור-2.11.0 3.7-3.10 MSVC 2019 באזל 5.3.0
זרימת טנזור-2.10.0 3.7-3.10 MSVC 2019 באזל 5.1.1
זרימת טנזור-2.9.0 3.7-3.10 MSVC 2019 באזל 5.0.0
זרימת טנזור-2.8.0 3.7-3.10 MSVC 2019 באזל 4.2.1
זרימת טנזור-2.7.0 3.7-3.9 MSVC 2019 באזל 3.7.2
זרימת טנזור-2.6.0 3.6-3.9 MSVC 2019 באזל 3.7.2
זרימת טנזור-2.5.0 3.6-3.9 MSVC 2019 באזל 3.7.2
זרימת טנזור-2.4.0 3.6-3.8 MSVC 2019 באזל 3.1.0
זרימת טנזור-2.3.0 3.5-3.8 MSVC 2019 באזל 3.1.0
זרימת טנזור-2.2.0 3.5-3.8 MSVC 2019 באזל 2.0.0
זרימת טנזור-2.1.0 3.5-3.7 MSVC 2019 באזל 0.27.1-0.29.1
זרימת טנזור-2.0.0 3.5-3.7 MSVC 2017 באזל 0.26.1
זרימת טנזור-1.15.0 3.5-3.7 MSVC 2017 באזל 0.26.1
זרימת טנזור-1.14.0 3.5-3.7 MSVC 2017 באזל 0.24.1-0.25.2
זרימת טנזור-1.13.0 3.5-3.7 עדכון 3 של MSVC 2015 באזל 0.19.0-0.21.0
זרימת טנזור-1.12.0 3.5-3.6 עדכון 3 של MSVC 2015 באזל 0.15.0
זרימת טנזור-1.11.0 3.5-3.6 עדכון 3 של MSVC 2015 באזל 0.15.0
זרימת טנזור-1.10.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.9.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.8.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.7.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.6.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.5.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.4.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.3.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.2.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.1.0 3.5 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3
זרימת טנזור-1.0.0 3.5 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3

כרטיס מסך

גִרְסָה גרסת פייתון מַהְדֵר כלי בניית cuDNN קודה
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 באזל 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 באזל 3.1.0 8.0 11.0
tensorflow_gpu-2.3.0 3.5-3.8 MSVC 2019 באזל 3.1.0 7.6 10.1
tensorflow_gpu-2.2.0 3.5-3.8 MSVC 2019 באזל 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 גרסה 3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 עדכון 3 של MSVC 2015 Cmake גרסה 3.6.3 5.1 8