یک بسته Pip TensorFlow از منبع بسازید و آن را روی ویندوز نصب کنید.
راه اندازی برای ویندوز
ابزارهای ساخت زیر را برای پیکربندی محیط توسعه ویندوز خود نصب کنید.
وابستگی های بسته Python و TensorFlow را نصب کنید
یک نسخه Python 3.9+ 64 بیتی را برای ویندوز نصب کنید. pip را به عنوان یک ویژگی اختیاری انتخاب کنید و آن را به متغیر محیطی %PATH%
خود اضافه کنید.
وابستگی های بسته Pip TensorFlow را نصب کنید:
pip3 install -U pip
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 -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Visual C++ Build Tools 2022 را نصب کنید
ابزار ساخت Visual C++ 2022 را نصب کنید. این با Visual Studio Community 2022 ارائه می شود اما می توان آن را به طور جداگانه نصب کرد:
- به دانلودهای ویژوال استودیو بروید،
- ابزارهای ویژوال استودیو یا ابزارهای دیگر، چارچوب و قابل توزیع مجدد را انتخاب کنید،
- دانلود و نصب کنید:
- ابزارهای ساخت ویژوال استودیو 2022
- Microsoft Visual C++ Redistributables برای Visual Studio 2022
LLVM را نصب کنید
- به دانلودهای LLVM بروید،
- دانلود و نصب LLVM سازگار با ویندوز در C:/Program Files/LLVM به عنوان مثال، LLVM-17.0.6-win64.exe
نصب پشتیبانی از 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;%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
نشان داده شده است (ممکن است جلسه شما متفاوت باشد):
پکیج پیپ را بسازید و نصب کنید
پکیج پیپ در دو مرحله ساخته شده است. یک دستور bazel build
یک برنامه "package-builder" ایجاد می کند. سپس Package-builder را برای ایجاد بسته اجرا می کنید.
پکیج ساز را بسازید
tensorflow:master repo بهطور پیشفرض برای ساخت 2.x بهروزرسانی شده است. Bazel را نصب کنید و bazel build
برای ایجاد بستهساز TensorFlow استفاده کنید.
bazel build //tensorflow/tools/pip_package:wheel
فقط CPU
bazel
برای ساختن بسته سازنده TensorFlow با پشتیبانی فقط از CPU استفاده کنید:
ساخت با 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
پشتیبانی از پردازنده گرافیکی
برای ساخت بسته ساز 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 اضافه کنید.
بسته را بسازید
برای ساخت یک بسته پیپ، باید پرچم --repo_env=WHEEL_NAME را مشخص کنید. بسته به نام ارائه شده، بسته ایجاد می شود. به عنوان مثال:
برای ساخت بسته CPU 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 ساخته شود. تغییرات فهرست شده در زیر را انجام دهید، سپس دستورالعمل های قبلی را برای خط فرمان بومی ویندوز ( cmd.exe
) دنبال کنید.
تبدیل مسیر MSYS را غیرفعال کنید
MSYS به طور خودکار آرگومان هایی را که شبیه مسیرهای یونیکس هستند به مسیرهای ویندوز تبدیل می کند، و این با bazel
کار نمی کند. (برچسب //path/to:bin
یک مسیر مطلق یونیکس در نظر گرفته می شود زیرا با یک اسلش شروع می شود.)
export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"
PATH خود را تنظیم کنید
دایرکتوری های نصب 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.18.0 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.17.0 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.16.1 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.15.0 | 3.9-3.11 | MSVC 2019 | Bazel 6.1.0 |
tensorflow-2.14.0 | 3.9-3.11 | MSVC 2019 | Bazel 6.1.0 |
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 | بازل 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 |