Xây dựng gói pip TensorFlow từ nguồn và cài đặt nó trên Windows.
Thiết lập cho Windows
Cài đặt các công cụ xây dựng sau để định cấu hình môi trường phát triển Windows của bạn.
Cài đặt Python và các phần phụ thuộc của gói TensorFlow
Cài đặt bản phát hành Python 3.9+ 64-bit cho Windows . Chọn pip làm tính năng tùy chọn và thêm nó vào biến môi trường %PATH%
của bạn.
Cài đặt các phụ thuộc của gói pip TensorFlow:
pip3 install -U pip
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
Các phần phụ thuộc được liệt kê trong tệp setup.py
bên dưới REQUIRED_PACKAGES
.
Cài đặt Bazel
Cài đặt Bazel , công cụ xây dựng được sử dụng để biên dịch TensorFlow. Đối với phiên bản Bazel, hãy xem cấu hình bản dựng đã thử nghiệm dành cho Windows. Định cấu hình Bazel để xây dựng C++ .
Thêm vị trí của tệp thực thi Bazel vào biến môi trường %PATH%
của bạn.
Cài đặt MSYS2
Cài đặt MSYS2 cho các công cụ bin cần thiết để xây dựng TensorFlow. Nếu MSYS2 được cài đặt vào C:\msys64
, hãy thêm C:\msys64\usr\bin
vào biến môi trường %PATH%
của bạn. Sau đó, sử dụng cmd.exe
, chạy:
pacman -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Cài đặt Công cụ xây dựng Visual C++ 2022
Cài đặt công cụ xây dựng Visual C++ 2022 . Điều này đi kèm với Visual Studio Community 2022 nhưng có thể được cài đặt riêng:
- Đi tới phần tải xuống Visual Studio ,
- Chọn Tools for Visual Studio hoặc Other Tools, Framework và Redistributables ,
- Tải xuống và cài đặt:
- Xây dựng công cụ cho Visual Studio 2022
- Bản phân phối lại Microsoft Visual C++ cho Visual Studio 2022
Cài đặt LLVM
- Đi tới phần tải xuống LLVM ,
- Tải xuống và cài đặt LLVM tương thích với Windows trong C:/Program Files/LLVM, ví dụ: LLVM-17.0.6-win64.exe
Cài đặt hỗ trợ GPU (tùy chọn)
Xem hướng dẫn hỗ trợ GPU của Windows để cài đặt trình điều khiển và phần mềm bổ sung cần thiết để chạy TensorFlow trên GPU.
Tải xuống mã nguồn TensorFlow
Sử dụng Git để sao chép kho lưu trữ TensorFlow ( git
được cài đặt với MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
Repo mặc định là nhánh phát triển master
. Bạn cũng có thể kiểm tra một nhánh phát hành để xây dựng:
git checkout branch_name # r1.9, r1.10, etc.
Tùy chọn: Thiết lập biến môi trường
Chạy các lệnh sau trước khi chạy lệnh xây dựng để tránh các vấn đề khi tạo gói: (Nếu các lệnh bên dưới được thiết lập trong khi cài đặt gói, vui lòng bỏ qua chúng). Chạy set
để kiểm tra xem tất cả các đường dẫn đã được đặt chính xác chưa, chạy echo %Environmental Variable%
ví dụ: echo %BAZEL_VC%
để kiểm tra đường dẫn được thiết lập cho một Biến môi trường cụ thể
Đường dẫn Python thiết lập vấn đề 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
Đường dẫn Bazel/MSVC/CLANG thiết lập vấn đề 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)
Tùy chọn: Định cấu hình bản dựng
Các bản dựng TensorFlow được cấu hình bởi tệp .bazelrc
trong thư mục gốc của kho lưu trữ. Các tập lệnh ./configure
hoặc ./configure.py
có thể được sử dụng để điều chỉnh các cài đặt chung.
Nếu bạn cần thay đổi cấu hình, hãy chạy tập lệnh ./configure
từ thư mục gốc của kho lưu trữ.
python ./configure.py
Tập lệnh này sẽ nhắc bạn về vị trí của các phần phụ thuộc TensorFlow và yêu cầu các tùy chọn cấu hình bản dựng bổ sung (ví dụ: cờ trình biên dịch). Phần sau đây hiển thị mẫu chạy python ./configure.py
(phiên của bạn có thể khác):
Xây dựng và cài đặt gói pip
Gói pip được xây dựng theo hai bước. Lệnh bazel build
sẽ tạo chương trình "trình tạo gói". Sau đó, bạn chạy trình xây dựng gói để tạo gói.
Xây dựng trình xây dựng gói
tensorflow:master repo đã được cập nhật lên build 2.x theo mặc định. Cài đặt Bazel và sử dụng bazel build
để tạo trình tạo gói TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
chỉ dành cho CPU
Sử dụng bazel
để tạo trình tạo gói TensorFlow chỉ hỗ trợ CPU:
Xây dựng với MSVC
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Xây dựng với CLANG
Sử dụng --config= win_clang
để xây dựng TenorFlow bằng Trình biên dịch CLANG:
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
hỗ trợ GPU
Để tạo trình tạo gói TensorFlow có hỗ trợ GPU:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
Các lệnh xóa bộ đệm bazel để giải quyết lỗi do dữ liệu được lưu trong bộ nhớ đệm không hợp lệ hoặc lỗi thời, làm sạch bazel bằng cờ --expunge sẽ xóa tệp vĩnh viễn
bazel clean bazel clean --expunge
Tùy chọn xây dựng Bazel
Sử dụng tùy chọn này khi xây dựng để tránh các sự cố khi tạo gói: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
Xem tham chiếu dòng lệnh Bazel để biết các tùy chọn xây dựng .
Xây dựng TensorFlow từ nguồn có thể sử dụng nhiều RAM. Nếu hệ thống của bạn bị hạn chế về bộ nhớ, hãy giới hạn mức sử dụng RAM của Bazel bằng: --local_ram_resources=2048
.
Nếu xây dựng có hỗ trợ GPU, hãy thêm --copt=-nvcc_options=disable-warnings
để chặn các thông báo cảnh báo nvcc.
Xây dựng gói
Để xây dựng gói pip, bạn cần chỉ định cờ --repo_env=WHEEL_NAME. Tùy thuộc vào tên được cung cấp, gói sẽ được tạo. Ví dụ:
Để xây dựng gói CPU tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Để xây dựng gói hàng đêm, hãy đặt tf_nightly
thay vì tensorflow
, ví dụ: để xây dựng gói CPU hàng đêm:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
Kết quả là, bánh xe được tạo ra sẽ được đặt ở
bazel-bin/tensorflow/tools/pip_package/wheel_house/
Cài đặt gói
Tên tệp của tệp .whl
được tạo tùy thuộc vào phiên bản TensorFlow và nền tảng của bạn. Sử dụng pip install
để cài đặt gói, ví dụ:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Xây dựng bằng cách sử dụng trình bao MSYS
TensorFlow cũng có thể được xây dựng bằng shell MSYS. Thực hiện các thay đổi được liệt kê bên dưới, sau đó làm theo các hướng dẫn trước đó cho dòng lệnh gốc của Windows ( cmd.exe
).
Tắt chuyển đổi đường dẫn MSYS
MSYS tự động chuyển đổi các đối số trông giống như đường dẫn Unix sang đường dẫn Windows và điều này không hoạt động với bazel
. (Nhãn //path/to:bin
được coi là đường dẫn tuyệt đối của Unix vì nó bắt đầu bằng dấu gạch chéo.)
export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"
Đặt ĐƯỜNG của bạn
Thêm thư mục cài đặt Bazel và Python vào biến môi trường $PATH
của bạn. Nếu Bazel được cài đặt vào C:\tools\bazel.exe
và Python thành C:\Python\python.exe
, hãy đặt PATH
của bạn bằng:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
Để được hỗ trợ GPU, hãy thêm thư mục bin CUDA và cuDNN vào $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"
Cấu hình bản dựng đã được thử nghiệm
CPU
Phiên bản | Phiên bản Python | Trình biên dịch | Xây dựng công cụ |
---|---|---|---|
tenorflow-2.17.0 | 3,9-3,12 | LÊN 17.0.6 | Bazel 6.5.0 |
tenorflow-2.16.1 | 3,9-3,12 | LÊN 17.0.6 | Bazel 6.5.0 |
tenorflow-2.15.0 | 3,9-3,11 | MSVC 2019 | Bazel 6.1.0 |
tenorflow-2.14.0 | 3,9-3,11 | MSVC 2019 | Bazel 6.1.0 |
tenorflow-2.12.0 | 3,8-3,11 | MSVC 2019 | Bazel 5.3.0 |
tenorflow-2.11.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.3.0 |
tenorflow-2.10.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.1.1 |
tenorflow-2.9.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.0.0 |
tenorflow-2.8.0 | 3,7-3,10 | MSVC 2019 | Bazel 4.2.1 |
tenorflow-2.7.0 | 3,7-3,9 | MSVC 2019 | Bazel 3.7.2 |
tenorflow-2.6.0 | 3,6-3,9 | MSVC 2019 | Bazel 3.7.2 |
tenorflow-2.5.0 | 3,6-3,9 | MSVC 2019 | Bazel 3.7.2 |
tenorflow-2.4.0 | 3,6-3,8 | MSVC 2019 | Bazel 3.1.0 |
tenorflow-2.3.0 | 3,5-3,8 | MSVC 2019 | Bazel 3.1.0 |
tenorflow-2.2.0 | 3,5-3,8 | MSVC 2019 | Bazel 2.0.0 |
tenorflow-2.1.0 | 3,5-3,7 | MSVC 2019 | Bazel 0,27,1-0,29,1 |
tenorflow-2.0.0 | 3,5-3,7 | MSVC 2017 | Bazel 0.26.1 |
tenorflow-1.15.0 | 3,5-3,7 | MSVC 2017 | Bazel 0.26.1 |
tenorflow-1.14.0 | 3,5-3,7 | MSVC 2017 | Bazel 0,24,1-0,25,2 |
tenorflow-1.13.0 | 3,5-3,7 | Cập nhật MSVC 2015 3 | Bazel 0,19,0-0,21,0 |
tenorflow-1.12.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Bazel 0.15.0 |
tenorflow-1.11.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Bazel 0.15.0 |
tenorflow-1.10.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.9.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.8.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.7.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.6.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.5.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.4.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.3.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.2.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.1.0 | 3,5 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
tenorflow-1.0.0 | 3,5 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 |
GPU
Phiên bản | Phiên bản Python | Trình biên dịch | Xây dựng công cụ | cuDNN | CUDA |
---|---|---|---|---|---|
tenorflow_gpu-2.10.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.1.1 | 8.1 | 11.2 |
tenorflow_gpu-2.9.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.0.0 | 8.1 | 11.2 |
tenorflow_gpu-2.8.0 | 3,7-3,10 | MSVC 2019 | Bazel 4.2.1 | 8.1 | 11.2 |
tenorflow_gpu-2.7.0 | 3,7-3,9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow_gpu-2.6.0 | 3,6-3,9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow_gpu-2.5.0 | 3,6-3,9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow_gpu-2.4.0 | 3,6-3,8 | MSVC 2019 | Bazel 3.1.0 | 8,0 | 11.0 |
tenorflow_gpu-2.3.0 | 3,5-3,8 | MSVC 2019 | Bazel 3.1.0 | 7,6 | 10.1 |
tenorflow_gpu-2.2.0 | 3,5-3,8 | MSVC 2019 | Bazel 2.0.0 | 7,6 | 10.1 |
tenorflow_gpu-2.1.0 | 3,5-3,7 | MSVC 2019 | Bazel 0,27,1-0,29,1 | 7,6 | 10.1 |
tenorflow_gpu-2.0.0 | 3,5-3,7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tenorflow_gpu-1.15.0 | 3,5-3,7 | MSVC 2017 | Bazel 0.26.1 | 7.4 | 10 |
tenorflow_gpu-1.14.0 | 3,5-3,7 | MSVC 2017 | Bazel 0,24,1-0,25,2 | 7.4 | 10 |
tenorflow_gpu-1.13.0 | 3,5-3,7 | Cập nhật MSVC 2015 3 | Bazel 0,19,0-0,21,0 | 7.4 | 10 |
tenorflow_gpu-1.12.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Bazel 0.15.0 | 7.2 | 9,0 |
tenorflow_gpu-1.11.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.10.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 7 | 9 |
tenorflow_gpu-1.9.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 7 | 9 |
tenorflow_gpu-1.8.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 7 | 9 |
tenorflow_gpu-1.7.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 7 | 9 |
tenorflow_gpu-1.6.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 7 | 9 |
tenorflow_gpu-1.5.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 7 | 9 |
tenorflow_gpu-1.4.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 6 | 8 |
tenorflow_gpu-1.3.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 6 | 8 |
tenorflow_gpu-1.2.0 | 3,5-3,6 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 5.1 | 8 |
tenorflow_gpu-1.1.0 | 3,5 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 5.1 | 8 |
tenorflow_gpu-1.0.0 | 3,5 | Cập nhật MSVC 2015 3 | Cmake v3.6.3 | 5.1 | 8 |