بناء من المصدر على ويندوز

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

قم ببناء حزمة 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 ولكن يمكن تثبيته بشكل منفصل:

  1. انتقل إلى تنزيلات Visual Studio ،
  2. حدد العناصر القابلة لإعادة التوزيع وأدوات البناء ،
  3. تنزيل وتثبيت:
    • 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 separator
export 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