Xây dựng gói pip TensorFlow từ nguồn và cài đặt nó trên Ubuntu Linux và macOS. Mặc dù hướng dẫn có thể áp dụng cho các hệ thống khác nhưng nó chỉ được thử nghiệm và hỗ trợ cho Ubuntu và macOS.
Thiết lập cho Linux và macOS
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 của bạn.
Cài đặt Python và các phần phụ thuộc của gói TensorFlow
Ubuntu
sudo apt install python3-dev python3-pip
macOS
Yêu cầu Xcode 9.2 trở lên.
Cài đặt bằng trình quản lý gói Homebrew :
brew install python
Cài đặt các phần phụ thuộc của gói pip TensorFlow (nếu sử dụng môi trường ảo, hãy bỏ qua đối số --user
):
pip install -U --user pip
Cài đặt Bazel
Để xây dựng TensorFlow, bạn sẽ cần cài đặt Bazel. Bazelisk là một cách dễ dàng để cài đặt Bazel và tự động tải xuống phiên bản Bazel chính xác cho TensorFlow. Để dễ sử dụng, hãy thêm Bazelisk làm tệp thực thi bazel
trong PATH
của bạn.
Nếu Bazelisk không có sẵn, bạn có thể cài đặt Bazel theo cách thủ công. Đảm bảo cài đặt đúng phiên bản Bazel từ tệp .bazelversion của TensorFlow.
Cài đặt Clang (được khuyến nghị, chỉ dành cho Linux)
Clang là trình biên dịch C/C++/Objective-C được biên dịch bằng C++ dựa trên LLVM. Đây là trình biên dịch mặc định để xây dựng TensorFlow bắt đầu với TensorFlow 2.13. Phiên bản được hỗ trợ hiện tại là LLVM/Clang 17.
Các gói hàng đêm của LLVM Debian/Ubuntu cung cấp tập lệnh cài đặt tự động và các gói để cài đặt thủ công trên Linux. Đảm bảo bạn chạy lệnh sau nếu bạn thêm kho lưu trữ llvm apt vào nguồn gói của mình theo cách thủ công:
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17
Bây giờ /usr/lib/llvm-17/bin/clang
là đường dẫn thực sự gây ra tiếng kêu trong trường hợp này.
Ngoài ra, bạn có thể tải xuống và giải nén Clang + LLVM 17 dựng sẵn.
Dưới đây là ví dụ về các bước bạn có thể thực hiện để thiết lập tệp nhị phân Clang + LLVM 17 đã tải xuống trên hệ điều hành Debian/Ubuntu:
Thay đổi thư mục đích mong muốn:
cd <desired directory>
Tải và giải nén tệp lưu trữ...(phù hợp với kiến trúc của bạn):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
tar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
Sao chép nội dung được trích xuất (thư mục và tệp) vào
/usr
(bạn có thể cần quyền sudo và thư mục chính xác có thể thay đổi tùy theo phân phối). Điều này sẽ cài đặt Clang và LLVM một cách hiệu quả và thêm nó vào đường dẫn. Bạn không cần phải thay thế bất cứ thứ gì, trừ khi bạn đã cài đặt trước đó, trong trường hợp đó bạn nên thay thế các tệp:cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usr
Kiểm tra phiên bản nhị phân Clang + LLVM 17 thu được:
clang --version
Bây giờ
/usr/bin/clang
là đường dẫn thực tế đến tiếng kêu mới của bạn. Bạn có thể chạy tập lệnh./configure
hoặc đặt thủ công các biến môi trườngCC
vàBAZEL_COMPILER
cho đường dẫn này.
Cài đặt hỗ trợ GPU (tùy chọn, chỉ dành cho Linux)
Không có hỗ trợ GPU cho macOS.
Đọc hướng dẫn hỗ trợ GPU để 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 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 # r2.2, r2.3, etc.
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.
Vui lòng chạy tập lệnh ./configure
từ thư mục gốc của kho lưu trữ. 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). Tham khảo phần Phiên mẫu để biết chi tiết.
./configure
Ngoài ra còn có phiên bản python của tập lệnh này, ./configure.py
. Nếu sử dụng môi trường ảo, python configure.py
ưu tiên các đường dẫn trong môi trường, trong khi ./configure
ưu tiên các đường dẫn bên ngoài môi trường. Trong cả hai trường hợp, bạn có thể thay đổi mặc định.
Phiên mẫu
Phần sau đây hiển thị mẫu chạy tập lệnh ./configure
(phiên của bạn có thể khác):
Tùy chọn cấu hình
hỗ trợ GPU
từ v.2.18.0
Để được hỗ trợ GPU , hãy đặt cuda=Y
trong khi định cấu hình và chỉ định phiên bản CUDA và cuDNN nếu được yêu cầu. Bazel sẽ tự động tải xuống các gói CUDA và CUDNN hoặc trỏ đến các bản phân phối lại CUDA/CUDNN/NCCL trên hệ thống tệp cục bộ nếu được yêu cầu.
trước v.2.18.0
Để được hỗ trợ GPU , hãy đặt cuda=Y
trong khi định cấu hình và chỉ định phiên bản CUDA và cuDNN. Nếu hệ thống của bạn đã cài đặt nhiều phiên bản CUDA hoặc cuDNN, hãy đặt phiên bản đó một cách rõ ràng thay vì dựa vào phiên bản mặc định. ./configure
tạo các liên kết tượng trưng đến thư viện CUDA trong hệ thống của bạn—vì vậy nếu bạn cập nhật đường dẫn thư viện CUDA, bước cấu hình này phải được chạy lại trước khi xây dựng.
Tối ưu hóa
Đối với các cờ tối ưu hóa biên dịch, mặc định ( -march=native
) sẽ tối ưu hóa mã được tạo cho loại CPU của máy của bạn. Tuy nhiên, nếu xây dựng TensorFlow cho loại CPU khác, hãy xem xét cờ tối ưu hóa cụ thể hơn. Kiểm tra hướng dẫn sử dụng GCC để biết ví dụ.
Cấu hình được cấu hình sẵn
Có một số cấu hình bản dựng được cấu hình sẵn có thể được thêm vào lệnh bazel build
, ví dụ:
-
--config=dbg
—Xây dựng với thông tin gỡ lỗi. Xem ĐÓNG GÓP.md để biết chi tiết. -
--config=mkl
—Hỗ trợ cho Intel® MKL-DNN . -
--config=monolithic
—Cấu hình cho một bản dựng nguyên khối, chủ yếu là tĩnh.
Xây dựng và cài đặt gói pip
Tùy chọn xây dựng Bazel
Tham khảo 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
.
Các gói TensorFlow chính thức được xây dựng bằng chuỗi công cụ Clang tuân thủ tiêu chuẩn gói Manylinux2014.
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 GPU tenorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
Để xây dựng gói TPU tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
Để 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
Bản dựng Docker Linux
Hình ảnh phát triển Docker của TensorFlow là một cách dễ dàng để thiết lập môi trường xây dựng các gói Linux từ nguồn. Những hình ảnh này đã chứa mã nguồn và các phần phụ thuộc cần thiết để xây dựng TensorFlow. Đi tới hướng dẫn TensorFlow Docker để biết hướng dẫn cài đặt và danh sách các thẻ hình ảnh có sẵn .
chỉ dành cho CPU
Ví dụ sau sử dụng hình ảnh :devel
để xây dựng gói chỉ dành cho CPU từ mã nguồn TensorFlow mới nhất. Kiểm tra hướng dẫn Docker để biết các thẻ TensorFlow -devel
có sẵn.
Tải xuống hình ảnh phát triển mới nhất và khởi động vùng chứa Docker mà bạn sẽ sử dụng để xây dựng gói pip :
docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel bash
git pull # within the container, download the latest source code
Lệnh docker run
ở trên khởi động một shell trong thư mục /tensorflow_src
—gốc của cây nguồn. Nó gắn thư mục hiện tại của máy chủ vào thư mục /mnt
của vùng chứa và chuyển thông tin của người dùng máy chủ đến vùng chứa thông qua một biến môi trường (được sử dụng để đặt quyền—Docker có thể khiến việc này trở nên phức tạp).
Ngoài ra, để tạo bản sao máy chủ của TensorFlow trong vùng chứa, hãy gắn cây nguồn máy chủ vào thư mục /tensorflow
của vùng chứa:
docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \ -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash
Sau khi thiết lập cây nguồn, hãy xây dựng gói TensorFlow trong môi trường ảo của vùng chứa:
- Tùy chọn: Định cấu hình bản dựng—điều này sẽ nhắc người dùng trả lời các câu hỏi về cấu hình bản dựng.
- Xây dựng gói pip .
- Điều chỉnh quyền sở hữu của tệp bên ngoài vùng chứa.
./configure # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt
`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Cài đặt và xác minh gói trong vùng chứa:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"
Trên máy chủ của bạn, gói pip TensorFlow nằm trong thư mục hiện tại (với quyền của người dùng máy chủ): ./tensorflow- version - tags .whl
hỗ trợ GPU
Docker là cách dễ nhất để xây dựng hỗ trợ GPU cho TensorFlow vì máy chủ chỉ yêu cầu trình điều khiển NVIDIA® (không cần cài đặt Bộ công cụ NVIDIA® CUDA® ). Tham khảo hướng dẫn hỗ trợ GPU và hướng dẫn TensorFlow Docker để thiết lập nvidia-docker (chỉ dành cho Linux).
Ví dụ sau tải xuống hình ảnh TensorFlow :devel-gpu
và sử dụng nvidia-docker
để chạy vùng chứa hỗ trợ GPU. Hình ảnh phát triển này được định cấu hình để xây dựng gói pip có hỗ trợ GPU:
docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel-gpu bash
git pull # within the container, download the latest source code
Sau đó, trong môi trường ảo của vùng chứa, hãy xây dựng gói TensorFlow có hỗ trợ GPU:
./configure # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel --config=opt
chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Cài đặt và xác minh gói trong vùng chứa cũng như kiểm tra GPU:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"
Cấu hình bản dựng đã được thử nghiệm
Linux
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.18.0 | 3,9-3,12 | Tiếng vang 17.0.6 | Bazel 6.5.0 |
tenorflow-2.17.0 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 |
tenorflow-2.16.1 | 3,9-3,12 | Tiếng vang 17.0.6 | Bazel 6.5.0 |
tenorflow-2.15.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 |
tenorflow-2.14.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 |
tenorflow-2.13.0 | 3,8-3,11 | Tiếng vang 16.0.0 | Bazel 5.3.0 |
tenorflow-2.12.0 | 3,8-3,11 | GCC 9.3.1 | Bazel 5.3.0 |
tenorflow-2.11.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.3.0 |
tenorflow-2.10.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.1.1 |
tenorflow-2.9.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.0.0 |
tenorflow-2.8.0 | 3,7-3,10 | GCC 7.3.1 | Bazel 4.2.1 |
tenorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
tenorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
tenorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
tenorflow-2.4.0 | 3,6-3,8 | GCC 7.3.1 | Bazel 3.1.0 |
tenorflow-2.3.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 3.1.0 |
tenorflow-2.2.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 2.0.0 |
tenorflow-2.1.0 | 2,7, 3,5-3,7 | GCC 7.3.1 | Bazel 0.27.1 |
tenorflow-2.0.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 |
tenorflow-1.15.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 |
tenorflow-1.14.0 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.24.1 |
tenorflow-1.13.1 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.19.2 |
tenorflow-1.12.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
tenorflow-1.11.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
tenorflow-1.10.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
tenorflow-1.9.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.11.0 |
tenorflow-1.8.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 |
tenorflow-1.7.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 |
tenorflow-1.6.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 |
tenorflow-1.5.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.8.0 |
tenorflow-1.4.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.5.4 |
tenorflow-1.3.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 |
tenorflow-1.2.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 |
tenorflow-1.1.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 |
tenorflow-1.0.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 |
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-2.18.0 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 | 9,3 | 12,5 |
tenorflow-2.17.0 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 | 8,9 | 12.3 |
tenorflow-2.16.1 | 3,9-3,12 | Tiếng vang 17.0.6 | Bazel 6.5.0 | 8,9 | 12.3 |
tenorflow-2.15.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 | 8,9 | 12.2 |
tenorflow-2.14.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 | 8,7 | 11.8 |
tenorflow-2.13.0 | 3,8-3,11 | Tiếng vang 16.0.0 | Bazel 5.3.0 | 8,6 | 11.8 |
tenorflow-2.12.0 | 3,8-3,11 | GCC 9.3.1 | Bazel 5.3.0 | 8,6 | 11.8 |
tenorflow-2.11.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.3.0 | 8.1 | 11.2 |
tenorflow-2.10.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.1.1 | 8.1 | 11.2 |
tenorflow-2.9.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.0.0 | 8.1 | 11.2 |
tenorflow-2.8.0 | 3,7-3,10 | GCC 7.3.1 | Bazel 4.2.1 | 8.1 | 11.2 |
tenorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow-2.4.0 | 3,6-3,8 | GCC 7.3.1 | Bazel 3.1.0 | 8,0 | 11.0 |
tenorflow-2.3.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 3.1.0 | 7,6 | 10.1 |
tenorflow-2.2.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 2.0.0 | 7,6 | 10.1 |
tenorflow-2.1.0 | 2,7, 3,5-3,7 | GCC 7.3.1 | Bazel 0.27.1 | 7,6 | 10.1 |
tenorflow-2.0.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10,0 |
tenorflow_gpu-1.15.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10,0 |
tenorflow_gpu-1.14.0 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.24.1 | 7.4 | 10,0 |
tenorflow_gpu-1.13.1 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.19.2 | 7.4 | 10,0 |
tenorflow_gpu-1.12.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.11.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.10.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.9.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
tenorflow_gpu-1.8.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
tenorflow_gpu-1.7.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tenorflow_gpu-1.6.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tenorflow_gpu-1.5.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
tenorflow_gpu-1.4.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
tenorflow_gpu-1.3.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
tenorflow_gpu-1.2.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
tenorflow_gpu-1.1.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
tenorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
macOS
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.16.1 | 3,9-3,12 | Tiếng kêu từ Xcode 13.6 | Bazel 6.5.0 |
tenorflow-2.15.0 | 3,9-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 6.1.0 |
tenorflow-2.14.0 | 3,9-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 6.1.0 |
tenorflow-2.13.0 | 3,8-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 5.3.0 |
tenorflow-2.12.0 | 3,8-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 5.3.0 |
tenorflow-2.11.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 5.3.0 |
tenorflow-2.10.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 5.1.1 |
tenorflow-2.9.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 5.0.0 |
tenorflow-2.8.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 4.2.1 |
tenorflow-2.7.0 | 3,7-3,9 | Tiếng kêu từ xcode 10.11 | Bazel 3.7.2 |
tenorflow-2.6.0 | 3,6-3,9 | Tiếng kêu từ xcode 10.11 | Bazel 3.7.2 |
tenorflow-2.5.0 | 3,6-3,9 | Tiếng kêu từ xcode 10.11 | Bazel 3.7.2 |
tenorflow-2.4.0 | 3,6-3,8 | Tiếng kêu từ xcode 10.3 | Bazel 3.1.0 |
tenorflow-2.3.0 | 3,5-3,8 | Tiếng kêu từ xcode 10.1 | Bazel 3.1.0 |
tenorflow-2.2.0 | 3,5-3,8 | Tiếng kêu từ xcode 10.1 | Bazel 2.0.0 |
tenorflow-2.1.0 | 2,7, 3,5-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.27.1 |
tenorflow-2.0.0 | 2,7, 3,5-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.27.1 |
tenorflow-2.0.0 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.26.1 |
tenorflow-1.15.0 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.26.1 |
tenorflow-1.14.0 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode | Bazel 0.24.1 |
tenorflow-1.13.1 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode | Bazel 0.19.2 |
tenorflow-1.12.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.15.0 |
tenorflow-1.11.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.15.0 |
tenorflow-1.10.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.15.0 |
tenorflow-1.9.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.11.0 |
tenorflow-1.8.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.10.1 |
tenorflow-1.7.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.10.1 |
tenorflow-1.6.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.8.1 |
tenorflow-1.5.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.8.1 |
tenorflow-1.4.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.5.4 |
tenorflow-1.3.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.5 |
tenorflow-1.2.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.5 |
tenorflow-1.1.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 |
tenorflow-1.0.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 |
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-1.1.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 | 5.1 | 8 |
tenorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 | 5.1 | 8 |
Xây dựng gói pip TensorFlow từ nguồn và cài đặt nó trên Ubuntu Linux và macOS. Mặc dù hướng dẫn có thể áp dụng cho các hệ thống khác nhưng nó chỉ được thử nghiệm và hỗ trợ cho Ubuntu và macOS.
Thiết lập cho Linux và macOS
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 của bạn.
Cài đặt Python và các phần phụ thuộc của gói TensorFlow
Ubuntu
sudo apt install python3-dev python3-pip
macOS
Yêu cầu Xcode 9.2 trở lên.
Cài đặt bằng trình quản lý gói Homebrew :
brew install python
Cài đặt các phần phụ thuộc của gói pip TensorFlow (nếu sử dụng môi trường ảo, hãy bỏ qua đối số --user
):
pip install -U --user pip
Cài đặt Bazel
Để xây dựng TensorFlow, bạn sẽ cần cài đặt Bazel. Bazelisk là một cách dễ dàng để cài đặt Bazel và tự động tải xuống phiên bản Bazel chính xác cho TensorFlow. Để dễ sử dụng, hãy thêm Bazelisk làm tệp thực thi bazel
trong PATH
của bạn.
Nếu Bazelisk không có sẵn, bạn có thể cài đặt Bazel theo cách thủ công. Đảm bảo cài đặt đúng phiên bản Bazel từ tệp .bazelversion của TensorFlow.
Cài đặt Clang (được khuyến nghị, chỉ dành cho Linux)
Clang là trình biên dịch C/C++/Objective-C được biên dịch bằng C++ dựa trên LLVM. Đây là trình biên dịch mặc định để xây dựng TensorFlow bắt đầu với TensorFlow 2.13. Phiên bản được hỗ trợ hiện tại là LLVM/Clang 17.
Các gói hàng đêm của LLVM Debian/Ubuntu cung cấp tập lệnh cài đặt tự động và các gói để cài đặt thủ công trên Linux. Đảm bảo bạn chạy lệnh sau nếu bạn thêm kho lưu trữ llvm apt vào nguồn gói của mình theo cách thủ công:
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17
Bây giờ /usr/lib/llvm-17/bin/clang
là đường dẫn thực sự gây ra tiếng kêu trong trường hợp này.
Ngoài ra, bạn có thể tải xuống và giải nén Clang + LLVM 17 dựng sẵn.
Dưới đây là ví dụ về các bước bạn có thể thực hiện để thiết lập tệp nhị phân Clang + LLVM 17 đã tải xuống trên hệ điều hành Debian/Ubuntu:
Thay đổi thư mục đích mong muốn:
cd <desired directory>
Tải và giải nén tệp lưu trữ...(phù hợp với kiến trúc của bạn):
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
tar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz
Sao chép nội dung được trích xuất (thư mục và tệp) vào
/usr
(bạn có thể cần quyền sudo và thư mục chính xác có thể thay đổi tùy theo phân phối). Điều này sẽ cài đặt Clang và LLVM một cách hiệu quả và thêm nó vào đường dẫn. Bạn không cần phải thay thế bất cứ thứ gì, trừ khi bạn đã cài đặt trước đó, trong trường hợp đó bạn nên thay thế các tệp:cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usr
Kiểm tra phiên bản nhị phân Clang + LLVM 17 thu được:
clang --version
Bây giờ
/usr/bin/clang
là đường dẫn thực tế đến tiếng kêu mới của bạn. Bạn có thể chạy tập lệnh./configure
hoặc đặt thủ công các biến môi trườngCC
vàBAZEL_COMPILER
cho đường dẫn này.
Cài đặt hỗ trợ GPU (tùy chọn, chỉ dành cho Linux)
Không có hỗ trợ GPU cho macOS.
Đọc hướng dẫn hỗ trợ GPU để 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 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 # r2.2, r2.3, etc.
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.
Vui lòng chạy tập lệnh ./configure
từ thư mục gốc của kho lưu trữ. 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). Tham khảo phần Phiên mẫu để biết chi tiết.
./configure
Ngoài ra còn có phiên bản python của tập lệnh này, ./configure.py
. Nếu sử dụng môi trường ảo, python configure.py
ưu tiên các đường dẫn trong môi trường, trong khi ./configure
ưu tiên các đường dẫn bên ngoài môi trường. Trong cả hai trường hợp, bạn có thể thay đổi mặc định.
Phiên mẫu
Phần sau đây hiển thị mẫu chạy tập lệnh ./configure
(phiên của bạn có thể khác):
Tùy chọn cấu hình
hỗ trợ GPU
từ v.2.18.0
Để được hỗ trợ GPU , hãy đặt cuda=Y
trong khi định cấu hình và chỉ định phiên bản CUDA và cuDNN nếu được yêu cầu. Bazel sẽ tự động tải xuống các gói CUDA và CUDNN hoặc trỏ đến các bản phân phối lại CUDA/CUDNN/NCCL trên hệ thống tệp cục bộ nếu được yêu cầu.
trước v.2.18.0
Để được hỗ trợ GPU , hãy đặt cuda=Y
trong khi định cấu hình và chỉ định phiên bản CUDA và cuDNN. Nếu hệ thống của bạn đã cài đặt nhiều phiên bản CUDA hoặc cuDNN, hãy đặt phiên bản đó một cách rõ ràng thay vì dựa vào phiên bản mặc định. ./configure
tạo các liên kết tượng trưng đến thư viện CUDA trong hệ thống của bạn—vì vậy nếu bạn cập nhật đường dẫn thư viện CUDA, bước cấu hình này phải được chạy lại trước khi xây dựng.
Tối ưu hóa
Đối với các cờ tối ưu hóa biên dịch, mặc định ( -march=native
) sẽ tối ưu hóa mã được tạo cho loại CPU của máy của bạn. Tuy nhiên, nếu xây dựng TensorFlow cho loại CPU khác, hãy xem xét cờ tối ưu hóa cụ thể hơn. Kiểm tra hướng dẫn sử dụng GCC để biết ví dụ.
Cấu hình được cấu hình sẵn
Có một số cấu hình bản dựng được cấu hình sẵn có thể được thêm vào lệnh bazel build
, ví dụ:
-
--config=dbg
—Xây dựng với thông tin gỡ lỗi. Xem ĐÓNG GÓP.md để biết chi tiết. -
--config=mkl
—Hỗ trợ cho Intel® MKL-DNN . -
--config=monolithic
—Cấu hình cho một bản dựng nguyên khối, chủ yếu là tĩnh.
Xây dựng và cài đặt gói pip
Tùy chọn xây dựng Bazel
Tham khảo 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
.
Các gói TensorFlow chính thức được xây dựng bằng chuỗi công cụ Clang tuân thủ tiêu chuẩn gói Manylinux2014.
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 GPU tenorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
Để xây dựng gói TPU tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
Để 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
Bản dựng Docker Linux
Hình ảnh phát triển Docker của TensorFlow là một cách dễ dàng để thiết lập môi trường xây dựng các gói Linux từ nguồn. Những hình ảnh này đã chứa mã nguồn và các phần phụ thuộc cần thiết để xây dựng TensorFlow. Đi tới hướng dẫn TensorFlow Docker để biết hướng dẫn cài đặt và danh sách các thẻ hình ảnh có sẵn .
chỉ dành cho CPU
Ví dụ sau sử dụng hình ảnh :devel
để xây dựng gói chỉ dành cho CPU từ mã nguồn TensorFlow mới nhất. Kiểm tra hướng dẫn Docker để biết các thẻ TensorFlow -devel
có sẵn.
Tải xuống hình ảnh phát triển mới nhất và khởi động vùng chứa Docker mà bạn sẽ sử dụng để xây dựng gói pip :
docker pull tensorflow/tensorflow:devel
docker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel bash
git pull # within the container, download the latest source code
Lệnh docker run
ở trên khởi động một shell trong thư mục /tensorflow_src
—gốc của cây nguồn. Nó gắn thư mục hiện tại của máy chủ vào thư mục /mnt
của vùng chứa và chuyển thông tin của người dùng máy chủ đến vùng chứa thông qua một biến môi trường (được sử dụng để đặt quyền—Docker có thể khiến việc này trở nên phức tạp).
Ngoài ra, để tạo bản sao máy chủ của TensorFlow trong vùng chứa, hãy gắn cây nguồn máy chủ vào thư mục /tensorflow
của vùng chứa:
docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \ -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash
Sau khi thiết lập cây nguồn, hãy xây dựng gói TensorFlow trong môi trường ảo của vùng chứa:
- Tùy chọn: Định cấu hình bản dựng—điều này sẽ nhắc người dùng trả lời các câu hỏi về cấu hình bản dựng.
- Xây dựng gói pip .
- Điều chỉnh quyền sở hữu của tệp bên ngoài vùng chứa.
./configure # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt
`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Cài đặt và xác minh gói trong vùng chứa:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp # don't import from source directory
python -c "import tensorflow as tf; print(tf.__version__)"
Trên máy chủ của bạn, gói pip TensorFlow nằm trong thư mục hiện tại (với quyền của người dùng máy chủ): ./tensorflow- version - tags .whl
hỗ trợ GPU
Docker là cách dễ nhất để xây dựng hỗ trợ GPU cho TensorFlow vì máy chủ chỉ yêu cầu trình điều khiển NVIDIA® (không cần cài đặt Bộ công cụ NVIDIA® CUDA® ). Tham khảo hướng dẫn hỗ trợ GPU và hướng dẫn TensorFlow Docker để thiết lập nvidia-docker (chỉ dành cho Linux).
Ví dụ sau tải xuống hình ảnh TensorFlow :devel-gpu
và sử dụng nvidia-docker
để chạy vùng chứa hỗ trợ GPU. Hình ảnh phát triển này được định cấu hình để xây dựng gói pip có hỗ trợ GPU:
docker pull tensorflow/tensorflow:devel-gpu
docker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel-gpu bash
git pull # within the container, download the latest source code
Sau đó, trong môi trường ảo của vùng chứa, hãy xây dựng gói TensorFlow có hỗ trợ GPU:
./configure # if necessary
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel --config=opt
chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Cài đặt và xác minh gói trong vùng chứa cũng như kiểm tra GPU:
pip uninstall tensorflow # remove current version
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
cd /tmp # don't import from source directory
python -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"
Cấu hình bản dựng đã được thử nghiệm
Linux
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.18.0 | 3,9-3,12 | Tiếng vang 17.0.6 | Bazel 6.5.0 |
tenorflow-2.17.0 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 |
tenorflow-2.16.1 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 |
tenorflow-2.15.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 |
tenorflow-2.14.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 |
tenorflow-2.13.0 | 3,8-3,11 | Tiếng vang 16.0.0 | Bazel 5.3.0 |
tenorflow-2.12.0 | 3,8-3,11 | GCC 9.3.1 | Bazel 5.3.0 |
tenorflow-2.11.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.3.0 |
tenorflow-2.10.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.1.1 |
tenorflow-2.9.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.0.0 |
tenorflow-2.8.0 | 3,7-3,10 | GCC 7.3.1 | Bazel 4.2.1 |
tenorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
tenorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
tenorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
tenorflow-2.4.0 | 3,6-3,8 | GCC 7.3.1 | Bazel 3.1.0 |
tenorflow-2.3.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 3.1.0 |
tenorflow-2.2.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 2.0.0 |
tenorflow-2.1.0 | 2,7, 3,5-3,7 | GCC 7.3.1 | Bazel 0.27.1 |
tenorflow-2.0.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 |
tenorflow-1.15.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 |
tenorflow-1.14.0 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.24.1 |
tenorflow-1.13.1 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.19.2 |
tenorflow-1.12.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
tenorflow-1.11.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
tenorflow-1.10.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
tenorflow-1.9.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.11.0 |
tenorflow-1.8.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 |
tenorflow-1.7.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 |
tenorflow-1.6.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 |
tenorflow-1.5.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.8.0 |
tenorflow-1.4.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.5.4 |
tenorflow-1.3.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 |
tenorflow-1.2.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 |
tenorflow-1.1.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 |
tenorflow-1.0.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 |
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-2.18.0 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 | 9,3 | 12,5 |
tenorflow-2.17.0 | 3,9-3,12 | Tiếng vang 17.0.6 | Bazel 6.5.0 | 8,9 | 12.3 |
tenorflow-2.16.1 | 3,9-3,12 | Tiếng kêu 17.0.6 | Bazel 6.5.0 | 8,9 | 12.3 |
tenorflow-2.15.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 | 8,9 | 12.2 |
tenorflow-2.14.0 | 3,9-3,11 | Tiếng vang 16.0.0 | Bazel 6.1.0 | 8,7 | 11.8 |
tenorflow-2.13.0 | 3,8-3,11 | Tiếng vang 16.0.0 | Bazel 5.3.0 | 8,6 | 11.8 |
tenorflow-2.12.0 | 3,8-3,11 | GCC 9.3.1 | Bazel 5.3.0 | 8,6 | 11.8 |
tenorflow-2.11.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.3.0 | 8.1 | 11.2 |
tenorflow-2.10.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.1.1 | 8.1 | 11.2 |
tenorflow-2.9.0 | 3,7-3,10 | GCC 9.3.1 | Bazel 5.0.0 | 8.1 | 11.2 |
tenorflow-2.8.0 | 3,7-3,10 | GCC 7.3.1 | Bazel 4.2.1 | 8.1 | 11.2 |
tenorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
tenorflow-2.4.0 | 3,6-3,8 | GCC 7.3.1 | Bazel 3.1.0 | 8,0 | 11.0 |
tenorflow-2.3.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 3.1.0 | 7,6 | 10.1 |
tenorflow-2.2.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 2.0.0 | 7,6 | 10.1 |
tenorflow-2.1.0 | 2,7, 3,5-3,7 | GCC 7.3.1 | Bazel 0,27,1 | 7,6 | 10.1 |
tenorflow-2.0.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10,0 |
tenorflow_gpu-1.15.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10,0 |
tenorflow_gpu-1.14.0 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.24.1 | 7.4 | 10,0 |
tenorflow_gpu-1.13.1 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.19.2 | 7.4 | 10,0 |
tenorflow_gpu-1.12.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.11.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.10.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
tenorflow_gpu-1.9.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
tenorflow_gpu-1.8.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
tenorflow_gpu-1.7.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tenorflow_gpu-1.6.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
tenorflow_gpu-1.5.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
tenorflow_gpu-1.4.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
tenorflow_gpu-1.3.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
tenorflow_gpu-1.2.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
tenorflow_gpu-1.1.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
tenorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
macOS
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.16.1 | 3,9-3,12 | Tiếng kêu từ Xcode 13.6 | Bazel 6.5.0 |
tenorflow-2.15.0 | 3,9-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 6.1.0 |
tenorflow-2.14.0 | 3,9-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 6.1.0 |
tenorflow-2.13.0 | 3,8-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 5.3.0 |
tenorflow-2.12.0 | 3,8-3,11 | Tiếng kêu từ xcode 10.15 | Bazel 5.3.0 |
tenorflow-2.11.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 5.3.0 |
tenorflow-2.10.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 5.1.1 |
tenorflow-2.9.0 | 3,7-3,10 | Tiếng vang từ xcode 10.14 | Bazel 5.0.0 |
tenorflow-2.8.0 | 3,7-3,10 | Tiếng kêu từ xcode 10.14 | Bazel 4.2.1 |
tenorflow-2.7.0 | 3,7-3,9 | Tiếng kêu từ xcode 10.11 | Bazel 3.7.2 |
tenorflow-2.6.0 | 3,6-3,9 | Tiếng kêu từ xcode 10.11 | Bazel 3.7.2 |
tenorflow-2.5.0 | 3,6-3,9 | Tiếng kêu từ xcode 10.11 | Bazel 3.7.2 |
tenorflow-2.4.0 | 3,6-3,8 | Tiếng kêu từ xcode 10.3 | Bazel 3.1.0 |
tenorflow-2.3.0 | 3,5-3,8 | Tiếng kêu từ xcode 10.1 | Bazel 3.1.0 |
tenorflow-2.2.0 | 3,5-3,8 | Tiếng kêu từ xcode 10.1 | Bazel 2.0.0 |
tenorflow-2.1.0 | 2,7, 3,5-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.27.1 |
tenorflow-2.0.0 | 2,7, 3,5-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.27.1 |
tenorflow-2.0.0 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.26.1 |
tenorflow-1.15.0 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode 10.1 | Bazel 0.26.1 |
tenorflow-1.14.0 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode | Bazel 0.24.1 |
tenorflow-1.13.1 | 2,7, 3,3-3,7 | Tiếng kêu từ xcode | Bazel 0.19.2 |
tenorflow-1.12.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.15.0 |
tenorflow-1.11.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.15.0 |
tenorflow-1.10.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.15.0 |
tenorflow-1.9.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.11.0 |
tenorflow-1.8.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.10.1 |
tenorflow-1.7.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.10.1 |
tenorflow-1.6.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.8.1 |
tenorflow-1.5.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.8.1 |
tenorflow-1.4.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.5.4 |
tenorflow-1.3.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.5 |
tenorflow-1.2.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.5 |
tenorflow-1.1.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 |
tenorflow-1.0.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 |
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-1.1.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 | 5.1 | 8 |
tenorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | Tiếng kêu từ xcode | Bazel 0.4.2 | 5.1 | 8 |