قم ببناء حزمة TensorFlow pip من المصدر وقم بتثبيتها على Windows.
الإعداد لنظام Windows
قم بتثبيت أدوات البناء التالية لتكوين بيئة تطوير Windows الخاصة بك.
تثبيت Python وتبعيات حزمة TensorFlow
ثبّت إصدار بايثون 3.9+ (64 بت) لنظام ويندوز . اختر 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، ولكن يُمكن تثبيتها بشكل منفصل:
- انتقل إلى تنزيلات Visual Studio ،
- حدد أدوات لبرنامج Visual Studio أو أدوات أخرى وإطار العمل والعناصر القابلة لإعادة التوزيع ،
- التنزيل والتثبيت:
- أدوات البناء لبرنامج 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 لتثبيت برامج التشغيل والبرامج الإضافية المطلوبة لتشغيل 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: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)
اختياري: تكوين البناء
يتم تكوين إصدارات TensorFlow باستخدام ملف .bazelrc
في الدليل الجذر للمستودع. يمكن استخدام نصوص ./configure
أو ./configure.py
لضبط الإعدادات الشائعة.
إذا كنت بحاجة إلى تغيير التكوين، قم بتشغيل البرنامج النصي ./configure
من دليل جذر المستودع.
python ./configure.py
يُطالبك هذا البرنامج النصي بتحديد موقع تبعيات TensorFlow ويطلب خيارات إضافية لتكوين البناء (مثل علامات المُجمِّع). يُظهر ما يلي مثالًا لتشغيل ملف python ./configure.py
(قد تختلف جلستك):
بناء وتثبيت حزمة pip
يتم بناء حزمة pip على خطوتين. يُنشئ أمر bazel build
برنامج "منشئ الحزم". ثم تُشغّل برنامج "منشئ الحزم" لإنشاء الحزمة.
بناء منشئ الحزمة
تم تحديث مستودع 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 Compiler:
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
دعم وحدة معالجة الرسومات
لإنشاء منشئ حزمة TensorFlow مع دعم وحدة معالجة الرسومات:
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). إذا كان نظامك محدودًا بالذاكرة، فحدّ من استخدام Bazel لذاكرة الوصول العشوائي باستخدام: --local_ram_resources=2048
.
إذا كنت تقوم بالبناء مع دعم وحدة معالجة الرسوميات، أضف --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
مسارًا مطلقًا في Unix لأنه يبدأ بشرطة مائلة.)
export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"
حدد مسارك
أضف مجلدات تثبيت Bazel وPython إلى متغير بيئة $PATH
. إذا كان Bazel مثبتًا في C:\tools\bazel.exe
، وبايثون في C:\Python\python.exe
، فاضبط PATH
بما يلي:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
لدعم وحدة معالجة الرسوميات، أضف أدلة 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"
تكوينات البناء التي تم اختبارها
وحدة المعالجة المركزية
إصدار | نسخة بايثون | المُجمِّع | أدوات البناء |
---|---|---|---|
tensorflow-2.20.0 | 3.9-3.13 | كلانج 18.1.4 | بازل 7.4.1 |
tensorflow-2.19.0 | 3.9-3.12 | كلانج 18.1.4 | بازل 6.5.0 |
tensorflow-2.18.0 | 3.9-3.12 | كلانج 17.0.6 | بازل 6.5.0 |
tensorflow-2.17.0 | 3.9-3.12 | كلانج 17.0.6 | بازل 6.5.0 |
tensorflow-2.16.1 | 3.9-3.12 | كلانج 17.0.6 | بازل 6.5.0 |
tensorflow-2.15.0 | 3.9-3.11 | MSVC 2019 | بازل 6.1.0 |
tensorflow-2.14.0 | 3.9-3.11 | MSVC 2019 | بازل 6.1.0 |
tensorflow-2.12.0 | 3.8-3.11 | MSVC 2019 | بازل 5.3.0 |
tensorflow-2.11.0 | 3.7-3.10 | MSVC 2019 | بازل 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 | بازل 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 | بازل 3.1.0 |
tensorflow-2.3.0 | 3.5-3.8 | MSVC 2019 | بازل 3.1.0 |
tensorflow-2.2.0 | 3.5-3.8 | MSVC 2019 | بازل 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 | تحديث MSVC 2015 3 | بازل 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3.5-3.6 | تحديث MSVC 2015 3 | بازل 0.15.0 |
tensorflow-1.11.0 | 3.5-3.6 | تحديث MSVC 2015 3 | بازل 0.15.0 |
tensorflow-1.10.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.9.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.8.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.7.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.5.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.4.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.3.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.2.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.1.0 | 3.5 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 |
tensorflow-1.0.0 | 3.5 | تحديث MSVC 2015 3 | سي ميك الإصدار 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 | تحديث MSVC 2015 3 | بازل 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | تحديث MSVC 2015 3 | بازل 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | تحديث MSVC 2015 3 | بازل 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | تحديث MSVC 2015 3 | سي ميك الإصدار 3.6.3 | 5.1 | 8 |