قم ببناء حزمة TensorFlow pip من المصدر وتثبيتها على Windows.
الإعداد لنظام التشغيل Windows
قم بتثبيت أدوات البناء التالية لتكوين بيئة تطوير Windows الخاصة بك.
قم بتثبيت بايثون وتبعيات حزمة TensorFlow
قم بتثبيت إصدار Python 3.7+ 64 بت لنظام التشغيل Windows . حدد النقطة كميزة اختيارية وأضفها إلى المتغير البيئي %PATH%
.
قم بتثبيت تبعيات حزمة TensorFlow pip :
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
يتم سرد التبعيات في ملف setup.py
ضمن REQUIRED_PACKAGES
.
قم بتثبيت Bazel
قم بتثبيت Bazel ، أداة البناء المستخدمة في ترجمة TensorFlow. بالنسبة لإصدار Bazel ، راجع تكوينات البناء التي تم اختبارها لنظام Windows. تكوين Bazel لبناء C ++ .
أضف موقع Bazel القابل للتنفيذ إلى متغير البيئة %PATH%
.
قم بتثبيت MSYS2
قم بتثبيت MSYS2 لأدوات الحاوية اللازمة لبناء TensorFlow. إذا تم تثبيت MSYS2 على C:\msys64
، فقم بإضافة C:\msys64\usr\bin
إلى متغير البيئة %PATH%
. ثم ، باستخدام cmd.exe
، قم بتشغيل:
pacman -S git patch unzip
قم بتثبيت Visual C ++ Build Tools 2019
قم بتثبيت أدوات البناء Visual C ++ 2019 . يأتي هذا مع Visual Studio 2019 ولكن يمكن تثبيته بشكل منفصل:
- انتقل إلى تنزيلات Visual Studio ،
- حدد العناصر القابلة لإعادة التوزيع وأدوات البناء ،
- تنزيل وتثبيت:
- Microsoft Visual C ++ 2019 القابل لإعادة التوزيع
- أدوات البناء من Microsoft 2019
تثبيت دعم 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.
اختياري: تكوين البناء
يتم تكوين إصدارات TensorFlow بواسطة ملف .bazelrc
في الدليل الجذر للمستودع. يمكن استخدام البرامج النصية ./configure
أو ./configure.py
لتعديل الإعدادات العامة.
إذا كنت بحاجة إلى تغيير التكوين ، فقم بتشغيل البرنامج النصي ./configure
من الدليل الجذر للمستودع.
python ./configure.py
يطالبك هذا البرنامج النصي بموقع تبعيات TensorFlow ويطلب خيارات تكوين بناء إضافية (علامات المترجم ، على سبيل المثال). يوضح ما يلي نموذج تشغيل من python ./configure.py
(قد تختلف جلستك):
خيارات الإعداد
لدعم GPU ، حدد إصدارات CUDA و cuDNN. إذا كان نظامك يحتوي على إصدارات متعددة من CUDA أو cuDNN مثبتة ، فاضبط الإصدار بشكل صريح بدلاً من الاعتماد على الإعداد الافتراضي. يقوم ./configure.py
بإنشاء روابط رمزية إلى مكتبات CUDA الخاصة بنظامك — لذلك إذا قمت بتحديث مسارات مكتبة CUDA ، فيجب تشغيل خطوة التكوين هذه مرة أخرى قبل الإنشاء.
بناء وتثبيت حزمة النقطة
يتم بناء حزمة النقطة على خطوتين. تنشئ أوامر bazel build
برنامج "بناء الحزم". ثم تقوم بتشغيل أداة إنشاء الحزمة لإنشاء الحزمة.
بناء منشئ الحزم
tensorflow: تم تحديث الريبو الرئيسي لبناء 2.x افتراضيًا. قم بتثبيت Bazel واستخدام bazel build
لإنشاء أداة إنشاء الحزم TensorFlow.
bazel build //tensorflow/tools/pip_package:build_pip_package
وحدة المعالجة المركزية فقط
استخدم bazel
لإنشاء أداة إنشاء الحزم TensorFlow مع دعم وحدة المعالجة المركزية فقط:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
دعم GPU
لجعل أداة إنشاء الحزم TensorFlow تدعم وحدة معالجة الرسومات:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
خيارات بناء Bazel
استخدم هذا الخيار عند الإنشاء لتجنب حدوث مشكلة في إنشاء الحزمة: tensorflow: issue # 22390
--define=no_tensorflow_py_deps=true
راجع مرجع سطر أوامر Bazel للحصول على خيارات الإنشاء .
يمكن أن يستخدم إنشاء TensorFlow من المصدر الكثير من ذاكرة الوصول العشوائي. إذا كانت ذاكرة نظامك محدودة ، فحد من استخدام ذاكرة الوصول العشوائي في Bazel بـ: --local_ram_resources=2048
.
في حالة البناء باستخدام دعم GPU ، أضف --copt=-nvcc_options=disable-warnings
لمنع رسائل تحذير nvcc.
بناء الحزمة
ينشئ الأمر bazel build
ملفًا تنفيذيًا باسم build_pip_package
- هذا هو البرنامج الذي يبني حزمة pip
. على سبيل المثال ، يُنشئ ما يلي حزمة .whl
في دليل C:/tmp/tensorflow_pkg
:
bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg
على الرغم من أنه من الممكن إنشاء تكوينات CUDA وغير CUDA تحت نفس شجرة المصدر ، فإننا نوصي بتشغيل bazel clean
عند التبديل بين هذين التكوينين في نفس شجرة المصدر.
قم بتثبيت الحزمة
يعتمد اسم ملف .whl
الذي تم إنشاؤه على إصدار TensorFlow والنظام الأساسي الخاص بك. استخدم pip3 install
الحزمة ، على سبيل المثال:
pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.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:\Python36\python.exe
، فقم بتعيين PATH
الخاص بك باستخدام:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/Python36:$PATH"
لدعم GPU ، أضف مجلدي حاوية 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.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 | 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 | 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 | Cmake v3.6.3 |
Tensorflow-1.9.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.8.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.7.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.5.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.4.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.3.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.2.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.1.0 | 3.5 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
Tensorflow-1.0.0 | 3.5 | MSVC 2015 التحديث 3 | Cmake v3.6.3 |
GPU
إصدار | نسخة بايثون | مترجم | أدوات البناء | cuDNN | كودا |
---|---|---|---|---|---|
tensorflow_gpu-2.11.0 | 3.7-3.10 | MSVC 2019 | بازل 5.3.0 | 8.1 | 11.2 |
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 | 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 | 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 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | MSVC 2015 التحديث 3 | Cmake v3.6.3 | 5.1 | 8 |