Xây dựng gói pip TensorFlow từ nguồn và cài đặt trên Windows.
Thiết lập cho Windows
Cài đặt các công cụ xây dựng sau để cấu hình môi trường phát triển Windows của bạn.
Cài đặt Python và các gói phụ thuộc của TensorFlow
Cài đặt phiên bản 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à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ụ thuộc được liệt kê trong tệp setup.py
tạ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 xây dựng đã được thử nghiệm cho Windows. Cấu hình Bazel để xây dựng C++ .
Thêm vị trí 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 để có 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%
. Sau đó, 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 Visual C++ Build Tools 2022
Cài đặt công cụ xây dựng Visual C++ 2022. Công cụ này đi kèm với Visual Studio Community 2022 nhưng có thể cài đặt riêng:
- Đi đến phần tải xuống của Visual Studio ,
- Chọn Công cụ cho Visual Studio hoặc các Công cụ, Khung và Redistributables khác ,
- Tải xuống và cài đặt:
- Công cụ xây dựng cho Visual Studio 2022
- Microsoft Visual C++ Redistributables cho Visual Studio 2022
Cài đặt LLVM
- Đi đến 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 cùng với MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
Kho lưu trữ mặc định là nhánh phát triển master
. Bạn cũng có thể kiểm tra 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 build để tránh sự cố khi tạo gói: (Nếu các lệnh dưới đây được thiết lập 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 thiết lập chính xác chưa, chạy lệnh 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ể.
Vấn đề thiết lập đường dẫn Python 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
Sự cố thiết lập đường dẫn 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)
Tùy chọn: Cấu hình bản dựng
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ó thể sử dụng tập lệnh ./configure
hoặc ./configure.py
để đ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 nhập vị trí các phụ thuộc của 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ờ biên dịch). Sau đây là ví dụ chạy python ./configure.py
(phiên làm việc 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
tạo ra một chương trình "package-builder". Sau đó, bạn chạy package-builder để 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 bản dựng 2.x theo mặc định. Cài đặt Bazel và sử dụng bazel build
để tạo trình xây dựng gói TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
Chỉ CPU
Sử dụng bazel
để tạo trình xây dựng 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 xây dựng 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
Lệnh xóa bộ nhớ đệ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, bazel clean với cờ --expunge sẽ xóa vĩnh viễn các tệp
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 vấn đề khi tạo gói: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
Xem tài liệu tham khảo dòng lệnh Bazel để biết các tùy chọn xây dựng .
Việc xây dựng TensorFlow từ mã nguồn có thể tiêu tốn rất 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 với sự hỗ trợ của GPU, hãy thêm --copt=-nvcc_options=disable-warnings
để ẩn thông báo cảnh báo nvcc.
Xây dựng gói
Để xây dựng một 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 nightly, hãy đặt tf_nightly
thay vì tensorflow
, ví dụ để xây dựng gói nightly CPU:
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 .whl
được tạo ra phụ 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 shell 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 hướng dẫn trước đó cho dòng lệnh gốc của Windows ( cmd.exe
).
Vô hiệu hóa chuyển đổi đường dẫn MSYS
MSYS tự động chuyển đổi các đối số trông giống đườ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 PATH 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 vào C:\Python\python.exe
, hãy thiết lập PATH
của bạn bằng:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
Để hỗ trợ GPU, hãy thêm các thư mục bin CUDA và cuDNN vào $PATH
của bạn:
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 xây dựng đã được thử nghiệm
Bộ xử lý
Phiên bản | Phiên bản Python | Trình biên dịch | Xây dựng công cụ |
---|---|---|---|
tensorflow-2.20.0 | 3.9-3.13 | CLANG 18.1.4 | Bazel 7.4.1 |
tensorflow-2.19.0 | 3.9-3.12 | CLANG 18.1.4 | Bazel 6.5.0 |
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 | Bazel 4.2.1 |
tensorflow-2.7.0 | 3,7-3,9 | MSVC 2019 | Bazel 3.7.2 |
tensorflow-2.6.0 | 3,6-3,9 | MSVC 2019 | Bazel 3.7.2 |
tensorflow-2.5.0 | 3,6-3,9 | MSVC 2019 | Bazel 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 | Bazel 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 | Bazel 0.24.1-0.25.2 |
tensorflow-1.13.0 | 3,5-3,7 | Bản cập nhật MSVC 2015 số 3 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Bazel 0.15.0 |
tensorflow-1.11.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Bazel 0.15.0 |
tensorflow-1.10.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3,5 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3,5 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 |
Bộ xử lý đồ họa
Phiên bản | Phiên bản Python | Trình biên dịch | Xây dựng công cụ | 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 | Bazel 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3,7-3,9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.6.0 | 3,6-3,9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3,6-3,9 | MSVC 2019 | Bazel 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 | Bazel 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 | Bazel 0.24.1-0.25.2 | 7.4 | 10 |
tensorflow_gpu-1.13.0 | 3,5-3,7 | Bản cập nhật MSVC 2015 số 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3,5-3,6 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3,5 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3,5 | Bản cập nhật MSVC 2015 số 3 | Cmake v3.6.3 | 5.1 | 8 |