Cài đặt

Cài đặt bằng Pip

Cài đặt Rừng quyết định TensorFlow bằng cách chạy:

# Install TensorFlow Decision Forests.
pip3 install tensorflow_decision_forests --upgrade

Sau đó, kiểm tra cài đặt bằng cách chạy:

# Check the version of TensorFlow Decision Forests.
python3 -c "import tensorflow_decision_forests as tfdf; print('Found TF-DF v' + tfdf.__version__)"

Xây dựng từ nguồn

Chi tiết kỹ thuật

Rừng quyết định TensorFlow (TF-DF) triển khai các hoạt động tùy chỉnh cho TensorFlow và do đó phụ thuộc vào ABI của TensorFlow. Vì ABI có thể thay đổi giữa các phiên bản nên mọi phiên bản TF-DF chỉ tương thích với một phiên bản TensorFlow cụ thể.

Để tránh biên dịch và vận chuyển tất cả TensorFlow bằng TF-DF, TF-DF liên kết với thư viện chia sẻ libtensorflow được phân phối cùng với gói Pip của TensorFlow. Chỉ một phần nhỏ của Tensorflow được biên dịch và quá trình biên dịch chỉ mất ~10 phút trên một máy trạm mạnh (thay vì mất nhiều giờ khi biên dịch toàn bộ TensorFlow). Để đảm bảo điều này hoạt động, phiên bản TensorFlow được biên dịch thực sự và thư viện chia sẻ libtensorflow phải khớp chính xác.

Tập lệnh tools/test_bazel.sh định cấu hình bản dựng TF-DF để đảm bảo phiên bản của các gói được sử dụng khớp với nhau. Để biết chi tiết về quá trình này, hãy xem mã nguồn của tập lệnh này. Do quá trình biên dịch TensorFlow thay đổi thường xuyên nên nó chỉ hỗ trợ xây dựng với các phiên bản TensorFlow mới nhất và hàng đêm.

Linux

Xây dựng Docker

Cách dễ nhất để xây dựng TF-DF trên Linux là sử dụng build Build docker của TensorFlow. Chỉ cần chạy các bước sau để xây dựng:

./tools/start_compile_docker.sh # Start the docker, might require root
export RUN_TESTS=1              # Whether to run tests after build
export PY_VERSION=3.9           # Python version to use for build
# TensorFlow version to compile against. This must match exactly the version
# of TensorFlow used at runtime, otherwise TF-DF may crash unexpectedly.
export TF_VERSION=2.16.1        # Set to "nightly" for building with tf-nightly
./tools/test_bazel.sh

Điều này đặt mã C++ đã biên dịch vào thư mục bazel-bin . Lưu ý rằng đây là một liên kết tượng trưng không được hiển thị bên ngoài vùng chứa (tức là bản dựng sẽ biến mất sau khi rời khỏi vùng chứa).

Để xây dựng các bánh xe, hãy chạy

tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV

Điều này sẽ cài đặt PyenvPyenv-virtualenv bên trong docker và sử dụng nó để cài đặt Python trong tất cả các phiên bản được hỗ trợ để xây dựng. Các bánh xe được đặt trong thư mục con dist/ .

Xây dựng thủ công

Việc xây dựng TF-DF mà không có docker có thể khó hơn và nhóm có thể không trợ giúp được việc này.

Yêu cầu

  • Bazel >= 6.3.0
  • Trăn >= 3
  • Git
  • Pyenv, Pyenv-virtualenv (chỉ khi đóng gói cho nhiều phiên bản Python)

Xây dựng

Tải xuống Rừng quyết định TensorFlow như sau:

# Download the source code of TF-DF.
git clone https://github.com/tensorflow/decision-forests.git
cd decision-forests

Tùy chọn: Rừng quyết định TensorFlow phụ thuộc vào Rừng quyết định Yggdrasil . Nếu muốn chỉnh sửa mã Yggdrasil, bạn có thể sao chép kho lưu trữ Yggdrasil và thay đổi đường dẫn tương ứng trong third_party/yggdrasil_decision_forests/workspace.bzl .

Biên dịch và chạy các bài kiểm tra đơn vị của TF-DF bằng lệnh sau. Lưu ý rằng test_bazel.sh được định cấu hình cho trình biên dịch mặc định trên máy của bạn. Chỉnh sửa tập tin trực tiếp để thay đổi cấu hình này.

# Build and test TF-DF.
RUN_TESTS=1 PY_VERSION=3.9 TF_VERSION=2.16.1 ./tools/test_bazel.sh

Tạo và kiểm tra gói pip bằng lệnh sau. Thay thế python3.9 bằng phiên bản python bạn muốn sử dụng. Lưu ý rằng bạn không phải sử dụng cùng một phiên bản Python như trong tập lệnh test_bazel.sh .

Nếu cấu hình của bạn tương thích với Manylinux2014 , gói pip tương thích manylinux2014 sẽ được tạo.

Nếu cấu hình của bạn không tương thích với Manylinux2014, gói pip không tương thích với manylinux2014 sẽ được tạo và lần kiểm tra cuối cùng sẽ không thành công. Sẽ không thành vấn đề nếu bạn muốn sử dụng TF-DF trên máy của mình. Một cách dễ dàng để làm cho bản dựng tương thích với Manylinux2014 là sử dụng docker được đề cập ở trên.

# Build and test a Pip package.
./tools/build_pip_package.sh python3.9

Lệnh này sẽ cài đặt gói pip TF-DF và chạy ví dụ trong examples/minimal.py . Gói Pip nằm trong thư mục dist/ .

Nếu bạn muốn tạo gói Pip cho phiên bản Python tương thích khác, hãy chạy:

# Install the other versions of python (assume only python3.9 is installed; this is the case in the build docker).
sudo apt-get update && sudo apt-get install python3.9 python3-pip

# Create the Pip package for the other version of python
./tools/build_pip_package.sh python3.9

Ngoài ra , bạn có thể tạo gói pip cho tất cả phiên bản tương thích của python bằng pyenv bằng cách chạy lệnh sau. Xem tiêu đề của tools/build_pip_package.sh để biết thêm chi tiết.

# Build and test all the Pip package using Pyenv.
./tools/build_pip_package.sh ALL_VERSIONS

Hệ điều hành Mac

Cài đặt

Yêu cầu

  • Công cụ dòng lệnh XCode
  • Bazel ( Bazelisk khuyên dùng)
  • Các gói homebrew: GNU coreutils, GNU sed, GNU grep
  • Pyenv (để xây dựng các gói Pip với nhiều phiên bản Python)

CPU Arm64

Đối với hệ thống MacOS có CPU ARM64, hãy làm theo các bước sau:

  1. Chuẩn bị môi trường của bạn

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/bin/activate
    
  2. Quyết định phiên bản Python và phiên bản TensorFlow nào bạn muốn sử dụng và chạy

    cd decision-forests
    bazel clean --expunge            # Remove old builds (esp. cross-compiled).
    export RUN_TESTS=1               # Whether to run tests after build.
    export PY_VERSION=3.9            # Python version to use for build.
    # TensorFlow version to compile against. This must match exactly the version
    # of TensorFlow used at runtime, otherwise TF-DF may crash unexpectedly.
    export TF_VERSION=2.16.1
    ./tools/test_bazel.sh            # Takes ~15 minutes on a modern Mac.
    
  3. Đóng gói bản dựng.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS
    
  4. Các gói có thể được tìm thấy trong decision-forests/dist/ .

Biên dịch chéo cho CPU Intel

Nếu bạn có máy MacOS có CPU Apple, hãy biên dịch chéo TF-DF cho máy MacOS có CPU Intel như sau.

  1. Chuẩn bị môi trường của bạn

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/source/activate
    
  2. Quyết định phiên bản Python nào bạn muốn sử dụng và chạy

    cd decision-forests
    bazel clean --expunge            # Remove old builds (esp. cross-compiled).
    export RUN_TESTS=0               # Cross-compiled builds can't run tests.
    export PY_VERSION=3.9            # Python version to use for build.
    # TensorFlow version to compile against. This must match exactly the version
    # of TensorFlow used at runtime, otherwise TF-DF may crash unexpectedly.
    export TF_VERSION=2.16.1
    export MAC_INTEL_CROSSCOMPILE=1  # Enable cross-compilation.
    ./tools/test_bazel.sh            # Takes ~15 minutes on a modern Mac.
    
  3. Đóng gói bản dựng.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
    
  4. Các gói có thể được tìm thấy trong decision-forests/dist/ . Lưu ý rằng chúng chưa được kiểm tra và nên kiểm tra chúng trước khi phân phối.

các cửa sổ

Bản dựng Windows đã được tạo thành công trước đây nhưng không được duy trì tại thời điểm này. Xem tools/test_bazel.battools/test_bazel.sh để biết các con trỏ (có thể đã lỗi thời) để biên dịch trên Windows.

Đối với người dùng Windows, YDF cung cấp các bản dựng Windows chính thức và hầu hết chức năng (và hơn thế nữa!) của TF-DF.