בנה חבילת pip של TensorFlow מהמקור והתקן אותה על Windows.
התקנה עבור Windows
התקן את כלי הבנייה הבאים כדי להגדיר את סביבת הפיתוח של Windows שלך.
התקנת Python ותלויות חבילת TensorFlow
התקן גרסת Python 3.9+ של 64 סיביות עבור Windows . בחר pip כתכונה אופציונלית והוסף אותה למשתנה הסביבתי %PATH% .
התקן את תלויות חבילת TensorFlow pip :
pip3 install -U pippip3 install -U six numpy wheel packagingpip3 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 אך ניתן להתקין אותו בנפרד:
- עבור אל הורדות Visual Studio ,
- בחר כלים עבור Visual Studio או כלים אחרים, Framework ו-Redistributables ,
- הורדה והתקנה:
- בניית כלים עבור Visual Studio 2022
- קבצי הפצה חוזרים של Microsoft Visual C++ עבור Visual Studio 2022
התקנת LLVM
- עבור אל הורדות LLVM ,
- הורד והתקן 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.gitcd 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=1export MSYS2_ARG_CONV_EXCL="*"
הגדר את הנתיב שלך
הוסף את ספריות ההתקנה של 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, הוסף את ספריות ה-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 |