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:
Przygotuj swoje środowisko
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/bin/activate
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.
Spakuj kompilację.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS
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.
Przygotuj swoje środowisko
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/source/activate
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.
Spakuj kompilację.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
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.