أنشئ حزمة TensorFlow pip من المصدر وقم بتثبيتها على Windows.
الإعداد لنظام التشغيل Windows
قم بتثبيت أدوات الإنشاء التالية لتكوين بيئة تطوير Windows لديك.
قم بتثبيت تبعيات حزمة Python وTensorFlow
قم بتثبيت إصدار Python 3.9+ 64 بت لنظام التشغيل Windows . حدد النقطة كميزة اختيارية وأضفها إلى المتغير البيئي %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 لأدوات الحاوية اللازمة لإنشاء 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 GPU لتثبيت برامج التشغيل والبرامج الإضافية المطلوبة لتشغيل TensorFlow على وحدة معالجة الرسومات.
قم بتنزيل كود مصدر 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
(قد تختلف جلستك):
بناء وتثبيت حزمة النقطة
تم إنشاء حزمة النقطة في خطوتين. يقوم أمر bazel build
بإنشاء برنامج "منشئ الحزم". ثم تقوم بتشغيل منشئ الحزمة لإنشاء الحزمة.
قم ببناء منشئ الحزمة
تم تحديث Tensorflow:master repo لبناء 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). إذا كان نظامك مقيدًا بالذاكرة، فقم بتقييد استخدام ذاكرة الوصول العشوائي الخاصة بـ Bazel باستخدام: --local_ram_resources=2048
.
إذا كان البناء بدعم GPU، أضف --copt=-nvcc_options=disable-warnings
لمنع رسائل تحذير nvcc.
بناء الحزمة
لإنشاء حزمة النقاط، تحتاج إلى تحديد علامة --repo_env=WHEEL_NAME. اعتمادا على الاسم المقدم، سيتم إنشاء الحزمة. على سبيل المثال:
لبناء حزمة وحدة المعالجة المركزية Tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
لإنشاء حزمة ليلية، قم بتعيين tf_nightly
بدلاً من tensorflow
، على سبيل المثال لإنشاء حزمة وحدة المعالجة المركزية الليلية:
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
، وPython على C:\Python\python.exe
، فاضبط PATH
باستخدام:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
للحصول على دعم وحدة معالجة الرسومات، أضف مجلدي 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 | كلانج 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 | إم إس في سي 2019 | بازل 6.1.0 |
Tensorflow-2.14.0 | 3.9-3.11 | إم إس في سي 2019 | بازل 6.1.0 |
Tensorflow-2.12.0 | 3.8-3.11 | إم إس في سي 2019 | بازل 5.3.0 |
Tensorflow-2.11.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 5.3.0 |
Tensorflow-2.10.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 5.1.1 |
Tensorflow-2.9.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 5.0.0 |
Tensorflow-2.8.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 4.2.1 |
Tensorflow-2.7.0 | 3.7-3.9 | إم إس في سي 2019 | بازل 3.7.2 |
Tensorflow-2.6.0 | 3.6-3.9 | إم إس في سي 2019 | بازل 3.7.2 |
Tensorflow-2.5.0 | 3.6-3.9 | إم إس في سي 2019 | بازل 3.7.2 |
Tensorflow-2.4.0 | 3.6-3.8 | إم إس في سي 2019 | بازل 3.1.0 |
Tensorflow-2.3.0 | 3.5-3.8 | إم إس في سي 2019 | بازل 3.1.0 |
Tensorflow-2.2.0 | 3.5-3.8 | إم إس في سي 2019 | بازل 2.0.0 |
Tensorflow-2.1.0 | 3.5-3.7 | إم إس في سي 2019 | بازل 0.27.1-0.29.1 |
Tensorflow-2.0.0 | 3.5-3.7 | إم إس في سي 2017 | بازل 0.26.1 |
Tensorflow-1.15.0 | 3.5-3.7 | إم إس في سي 2017 | بازل 0.26.1 |
Tensorflow-1.14.0 | 3.5-3.7 | إم إس في سي 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 | كميك v3.6.3 |
Tensorflow-1.9.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.8.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.7.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.6.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.5.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.4.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.3.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.2.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.1.0 | 3.5 | تحديث MSVC 2015 3 | كميك v3.6.3 |
Tensorflow-1.0.0 | 3.5 | تحديث MSVC 2015 3 | كميك v3.6.3 |
GPU
إصدار | نسخة بايثون | مترجم | بناء الأدوات | cuDNN | كودا |
---|---|---|---|---|---|
Tensorflow_gpu-2.10.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 5.1.1 | 8.1 | 11.2 |
Tensorflow_gpu-2.9.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 5.0.0 | 8.1 | 11.2 |
Tensorflow_gpu-2.8.0 | 3.7-3.10 | إم إس في سي 2019 | بازل 4.2.1 | 8.1 | 11.2 |
Tensorflow_gpu-2.7.0 | 3.7-3.9 | إم إس في سي 2019 | بازل 3.7.2 | 8.1 | 11.2 |
Tensorflow_gpu-2.6.0 | 3.6-3.9 | إم إس في سي 2019 | بازل 3.7.2 | 8.1 | 11.2 |
Tensorflow_gpu-2.5.0 | 3.6-3.9 | إم إس في سي 2019 | بازل 3.7.2 | 8.1 | 11.2 |
Tensorflow_gpu-2.4.0 | 3.6-3.8 | إم إس في سي 2019 | بازل 3.1.0 | 8.0 | 11.0 |
Tensorflow_gpu-2.3.0 | 3.5-3.8 | إم إس في سي 2019 | بازل 3.1.0 | 7.6 | 10.1 |
Tensorflow_gpu-2.2.0 | 3.5-3.8 | إم إس في سي 2019 | بازل 2.0.0 | 7.6 | 10.1 |
Tensorflow_gpu-2.1.0 | 3.5-3.7 | إم إس في سي 2019 | بازل 0.27.1-0.29.1 | 7.6 | 10.1 |
Tensorflow_gpu-2.0.0 | 3.5-3.7 | إم إس في سي 2017 | بازل 0.26.1 | 7.4 | 10 |
Tensorflow_gpu-1.15.0 | 3.5-3.7 | إم إس في سي 2017 | بازل 0.26.1 | 7.4 | 10 |
Tensorflow_gpu-1.14.0 | 3.5-3.7 | إم إس في سي 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 | كميك v3.6.3 | 7 | 9 |
Tensorflow_gpu-1.9.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 7 | 9 |
Tensorflow_gpu-1.8.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 7 | 9 |
Tensorflow_gpu-1.7.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 7 | 9 |
Tensorflow_gpu-1.6.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 7 | 9 |
Tensorflow_gpu-1.5.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 7 | 9 |
Tensorflow_gpu-1.4.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 6 | 8 |
Tensorflow_gpu-1.3.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 6 | 8 |
Tensorflow_gpu-1.2.0 | 3.5-3.6 | تحديث MSVC 2015 3 | كميك v3.6.3 | 5.1 | 8 |
Tensorflow_gpu-1.1.0 | 3.5 | تحديث MSVC 2015 3 | كميك v3.6.3 | 5.1 | 8 |
Tensorflow_gpu-1.0.0 | 3.5 | تحديث MSVC 2015 3 | كميك v3.6.3 | 5.1 | 8 |