یک بسته Pip TensorFlow را از منبع بسازید و آن را روی ویندوز نصب کنید.
راه اندازی برای ویندوز
ابزارهای ساخت زیر را برای پیکربندی محیط توسعه ویندوز خود نصب کنید.
وابستگی های بسته Python و TensorFlow را نصب کنید
یک نسخه Python 3.9+ 64 بیتی را برای ویندوز نصب کنید. pip را به عنوان یک ویژگی اختیاری انتخاب کنید و آن را به متغیر محیطی %PATH%
خود اضافه کنید.
وابستگی های بسته Pip TensorFlow را نصب کنید:
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
وابستگی ها در فایل setup.py
در REQUIRED_PACKAGES
فهرست شده اند.
Bazel را نصب کنید
Bazel، ابزار ساخت مورد استفاده برای کامپایل TensorFlow را نصب کنید . برای نسخه Bazel، تنظیمات ساخت تست شده برای ویندوز را ببینید. Bazel را برای ساخت ++C پیکربندی کنید.
مکان فایل اجرایی Bazel را به متغیر محیطی %PATH%
خود اضافه کنید.
MSYS2 را نصب کنید
MSYS2 را برای ابزارهای bin مورد نیاز برای ساخت 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 ارائه می شود اما می تواند به طور جداگانه نصب شود:
- به دانلودهای ویژوال استودیو بروید،
- Redistributables و Build Tools را انتخاب کنید،
- دانلود و نصب:
- Microsoft Visual C++ 2019 قابل توزیع مجدد
- Microsoft Build Tools 2019
نصب پشتیبانی از GPU (اختیاری)
برای نصب درایورها و نرم افزارهای اضافی مورد نیاز برای اجرای TensorFlow بر روی یک GPU، به راهنمای پشتیبانی از 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.
اختیاری: تنظیم متغیر محیطی
قبل از اجرای دستور build دستورات زیر را اجرا کنید تا مشکلی در ایجاد بسته ایجاد نشود: (اگر دستورات زیر هنگام نصب بسته ها تنظیم شده اند، لطفاً آنها را نادیده بگیرید). اجرای set
بررسی کنید که آیا همه مسیرها به درستی تنظیم شده اند، echo %Environmental Variable%
را اجرا کنید، به عنوان مثال echo %BAZEL_VC%
برای بررسی مسیر تنظیم شده برای یک متغیر محیطی خاص بررسی کنید.
راهاندازی مسیر پایتون مسئله tensorflow:issue#59943 ، tensorflow:issue#9436 ، tensorflow:issue#60083
set PATH=path/to/python # [e.g. (C:/Python310)] set PATH=path/to/python/Scripts # [e.g. (C:/Python310/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 مشکل tensorflow:issue#54578
set BAZEL_SH=C:/msys64/usr/bin/bash.exe set BAZEL_VS=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools set BAZEL_VC=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools/VC
اختیاری: پیکربندی ساخت
بیلدهای TensorFlow توسط فایل .bazelrc
در دایرکتوری ریشه مخزن پیکربندی می شوند. از اسکریپت های ./configure
یا ./configure.py
می توان برای تنظیم تنظیمات رایج استفاده کرد.
اگر نیاز به تغییر پیکربندی دارید، اسکریپت ./configure
را از دایرکتوری ریشه مخزن اجرا کنید.
python ./configure.py
این اسکریپت مکان وابستگی های TensorFlow را از شما می خواهد و گزینه های پیکربندی ساخت اضافی را می خواهد (برای مثال پرچم های کامپایلر). در زیر نمونه ای از اجرای python ./configure.py
نشان داده شده است (ممکن است جلسه شما متفاوت باشد):
پکیج پیپ را بسازید و نصب کنید
بسته پیپ در دو مرحله ساخته می شود. یک دستور bazel build
یک برنامه "package-builder" ایجاد می کند. سپس Package-builder را برای ایجاد بسته اجرا می کنید.
پکیج ساز را بسازید
tensorflow:master repo بهطور پیشفرض برای ساخت 2.x بهروزرسانی شده است. Bazel را نصب کنید و از bazel build
برای ایجاد بستهساز TensorFlow استفاده کنید.
bazel build //tensorflow/tools/pip_package:build_pip_package
فقط CPU
از bazel
برای ساختن بسته سازنده TensorFlow با پشتیبانی فقط از CPU استفاده کنید:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
پشتیبانی از پردازنده گرافیکی
برای ساخت بسته ساز TensorFlow با پشتیبانی GPU:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
دستورات پاکسازی حافظه پنهان bazel برای رفع خطاهای ناشی از داده های ذخیره شده نامعتبر یا قدیمی، پاک کردن bazel با پرچم --expunge فایل ها را برای همیشه حذف می کند.
bazel clean bazel clean --expunge
گزینه های ساخت Bazel
هنگام ساختن از این گزینه برای جلوگیری از مشکل ایجاد بسته استفاده کنید: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
برای گزینه های ساخت به مرجع خط فرمان Bazel مراجعه کنید.
ساخت TensorFlow از منبع می تواند از مقدار زیادی RAM استفاده کند. اگر سیستم شما دارای محدودیت حافظه است، استفاده از رم 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-tags.whl e.g. pip3 install C:/tmp/tensorflow_pkg/tensorflow-2.12.0-cp310-cp310-win_amd64.whl
با استفاده از پوسته MSYS بسازید
TensorFlow همچنین می تواند با استفاده از پوسته MSYS ساخته شود. تغییرات فهرست شده در زیر را انجام دهید، سپس دستورالعمل های قبلی را برای خط فرمان بومی ویندوز ( cmd.exe
) دنبال کنید.
تبدیل مسیر MSYS را غیرفعال کنید
MSYS به طور خودکار آرگومان هایی را که شبیه مسیرهای یونیکس هستند به مسیرهای ویندوز تبدیل می کند، و این با bazel
کار نمی کند. (برچسب //path/to:bin
یک مسیر مطلق یونیکس در نظر گرفته می شود زیرا با یک اسلش شروع می شود.)
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"
برای پشتیبانی از GPU، دایرکتوری های 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"
تنظیمات ساخت تست شده
CPU
نسخه | نسخه پایتون | کامپایلر | ابزار بسازید |
---|---|---|---|
tensorflow-2.12.0 | 3.8-3.11 | MSVC 2019 | Bazel 5.3.0 |
tensorflow-2.11.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.3.0 |
tensorflow-2.10.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.1.1 |
tensorflow-2.9.0 | 3.7-3.10 | MSVC 2019 | Bazel 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 | Bazel 3.1.0 |
tensorflow-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 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 | Bazel 0.26.1 |
tensorflow-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 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 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Bazel 0.15.0 |
tensorflow-1.11.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Bazel 0.15.0 |
tensorflow-1.10.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.9.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.8.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.7.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.5.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.4.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.3.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.2.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.1.0 | 3.5 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
tensorflow-1.0.0 | 3.5 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 |
پردازنده گرافیکی
نسخه | نسخه پایتون | کامپایلر | ابزار بسازید | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.10.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.1.1 | 8.1 | 11.2 |
tensorflow_gpu-2.9.0 | 3.7-3.10 | MSVC 2019 | Bazel 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 | Bazel 3.1.0 | 8.0 | 11.0 |
tensorflow_gpu-2.3.0 | 3.5-3.8 | MSVC 2019 | Bazel 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 | Bazel 0.26.1 | 7.4 | 10 |
tensorflow_gpu-1.15.0 | 3.5-3.7 | MSVC 2017 | Bazel 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 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | به روز رسانی MSVC 2015 3 | Cmake نسخه 3.6.3 | 5.1 | 8 |