Instalacja

Instalacja za pomocą Pipa

Zainstaluj lasy decyzyjne TensorFlow, uruchamiając:

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

Następnie sprawdź instalację, uruchamiając:

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

Kompiluj ze źródła

Szczegóły techniczne

Lasy decyzyjne TensorFlow (TF-DF) implementują niestandardowe operacje dla TensorFlow i dlatego zależą od ABI TensorFlow. Ponieważ ABI może zmieniać się między wersjami, każda wersja TF-DF jest kompatybilna tylko z jedną konkretną wersją TensorFlow.

Aby uniknąć kompilowania i wysyłania całego TensorFlow z TF-DF, łączami TF-DF do biblioteki współdzielonej libtensorflow dystrybuowanej z pakietem Pip TensorFlow. Kompilowana jest tylko niewielka część Tensorflow, a kompilacja zajmuje tylko ~ 10 minut na mocnej stacji roboczej (zamiast wielu godzin w przypadku kompilowania całego TensorFlow). Aby mieć pewność, że to zadziała, wersja TensorFlow, która jest faktycznie skompilowana, i biblioteka współdzielona libtensorflow muszą dokładnie pasować.

Skrypt tools/test_bazel.sh konfiguruje kompilację TF-DF, aby zapewnić zgodność wersji używanych pakietów. Aby uzyskać szczegółowe informacje na temat tego procesu, zobacz kod źródłowy tego skryptu. Ponieważ kompilacja TensorFlow często się zmienia, obsługuje ona tylko budowanie z najnowszymi wersjami TensorFlow i co noc.

Linuksa

Kompilacja Dockera

Najłatwiejszym sposobem zbudowania TF-DF w systemie Linux jest użycie okna dokowanego Build TensorFlow. Aby zbudować, po prostu wykonaj następujące kroki:

./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

Spowoduje to umieszczenie skompilowanego kodu C++ w katalogu bazel-bin . Należy pamiętać, że jest to dowiązanie symboliczne, które nie jest widoczne poza kontenerem (tj. po opuszczeniu kontenera kompilacja znika).

Aby zbudować koła, biegnij

tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV

Spowoduje to zainstalowanie Pyenv i Pyenv-virtualenv w oknie dokowanym i użycie go do zainstalowania Pythona we wszystkich obsługiwanych wersjach do budowania. Koła umieszczone są w podkatalogu dist/ .

Budowa ręczna

Budowanie TF-DF bez okna dokowanego może być trudniejsze i zespół prawdopodobnie nie jest w stanie w tym pomóc.

Wymagania

  • Bazela >= 6.3.0
  • Python >= 3
  • Git
  • Pyenv, Pyenv-virtualenv (tylko w przypadku pakowania dla wielu wersji Pythona)

Budynek

Pobierz lasy decyzyjne TensorFlow w następujący sposób:

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

Opcjonalnie: Lasy decyzyjne TensorFlow zależą od lasów decyzyjnych Yggdrasil . Jeśli chcesz edytować kod Yggdrasil, możesz sklonować repozytorium Yggdrasil i odpowiednio zmienić ścieżkę w third_party/yggdrasil_decision_forests/workspace.bzl .

Skompiluj i uruchom testy jednostkowe TF-DF za pomocą następującego polecenia. Zauważ, że test_bazel.sh jest skonfigurowany dla domyślnego kompilatora na twoim komputerze. Edytuj plik bezpośrednio, aby zmienić tę konfigurację.

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

Utwórz i przetestuj pakiet pip za pomocą następującego polecenia. Zamień python3.9 na wersję Pythona, której chcesz użyć. Pamiętaj, że nie musisz używać tej samej wersji Pythona, co w skrypcie test_bazel.sh .

Jeśli twoja konfiguracja jest kompatybilna z Manylinux2014 , zostanie utworzony pakiet pip zgodny manylinux2014 .

Jeśli Twoja konfiguracja nie jest kompatybilna z ManyLinux2014, zostanie utworzony pakiet pip niezgodny z manylinux2014 , a ostateczna kontrola zakończy się niepowodzeniem. Nie ma znaczenia, czy chcesz używać TF-DF na własnej maszynie. Łatwym sposobem zapewnienia kompatybilności kompilacji ManyLinux2014 jest użycie wspomnianego powyżej okna dokowanego.

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

To polecenie zainstaluje pakiet pip TF-DF i uruchomi przykład w examples/minimal.py . Pakiet Pip znajduje się w katalogu dist/ .

Jeśli chcesz utworzyć pakiet Pip dla innej kompatybilnej wersji Pythona, uruchom:

# 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

Alternatywnie możesz utworzyć pakiet pip dla wszystkich kompatybilnych wersji Pythona za pomocą pyenv, uruchamiając następujące polecenie. Więcej szczegółów znajdziesz w nagłówku tools/build_pip_package.sh .

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

MacOS

Organizować coś

Wymagania

  • Narzędzia wiersza poleceń XCode
  • Bazel (zalecany Bazelisk )
  • Pakiety Homebrew: GNU coreutils, GNU sed, GNU grep
  • Pyenv (do budowania pakietów Pip z wieloma wersjami Pythona)

Procesor Arm64

W przypadku systemów MacOS z procesorem ARM64 wykonaj następujące kroki:

  1. Przygotuj swoje środowisko

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/bin/activate
    
  2. Zdecyduj, której wersji Pythona i wersji TensorFlow chcesz używać i uruchamiać

    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. Spakuj kompilację.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS
    
  4. Pakiety można znaleźć w decision-forests/dist/ .

Kompilacja krzyżowa dla procesorów Intel

Jeśli masz maszynę MacOS z procesorem Apple, skompiluj krzyżowo TF-DF dla maszyn MacOS z procesorami Intel w następujący sposób.

  1. Przygotuj swoje środowisko

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/source/activate
    
  2. Zdecyduj, której wersji Pythona chcesz używać i uruchamiać

    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. Spakuj kompilację.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
    
  4. Pakiety można znaleźć w decision-forests/dist/ . Należy pamiętać, że nie zostały one przetestowane i rozsądne byłoby przetestowanie ich przed dystrybucją.

Okna

W przeszłości pomyślnie utworzono kompilację systemu Windows, ale na tym etapie nie jest ona utrzymywana. Zobacz tools/test_bazel.bat i tools/test_bazel.sh aby uzyskać (prawdopodobnie nieaktualne) wskaźniki dotyczące kompilacji w systemie Windows.

Użytkownikom systemu Windows YDF oferuje oficjalne kompilacje systemu Windows i większość funkcjonalności (i więcej!) TF-DF.