Installazione

Installazione con Pip

Installa TensorFlow Decision Forests eseguendo:

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

Quindi, controlla l'installazione eseguendo:

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

Costruisci dalla fonte

Linux

Impostare

Requisiti

  • Bazel >= 3.7.2
  • Pitone >= 3
  • Idiota
  • Pacchetti Python: panda tensorflow numpy

Invece di installare manualmente le dipendenze, puoi utilizzare la finestra mobile TensorFlow Build . Se scegli questa opzione, installa Docker:

Compilazione

Scarica TensorFlow Decision Forests come segue:

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

Facoltativo: TensorFlow Decision Forests dipende da Yggdrasil Decision Forests . Se desideri modificare il codice Yggdrasil, puoi clonare il github Yggdrasil e modificare il percorso di conseguenza in third_party/yggdrasil_decision_forests/workspace.bzl .

Facoltativo: se desideri utilizzare l'opzione docker, esegui lo script start_compile_docker.sh e vai al passaggio successivo. Se non desideri utilizzare l'opzione finestra mobile, vai direttamente al passaggio successivo.

# Optional: Install and start the build docker.
./tools/start_compile_docker.sh

Compila ed esegui gli unit test di TF-DF con il seguente comando. Tieni presente che test_bazel.sh è configurato per python3.8 e il compilatore predefinito sul tuo computer. Modifica direttamente il file per cambiare questa configurazione.

# Build and test TF-DF.
./tools/test_bazel.sh

Crea e testa un pacchetto pip con il comando seguente. Sostituisci python3.8 con la versione di Python che desideri utilizzare. Tieni presente che non è necessario utilizzare la stessa versione di Python dello script test_bazel.sh .

Se la tua configurazione è compatibile con manylinux2014 , verrà prodotto un pacchetto pip compatibile manylinux2014 .

Se la tua configurazione non è compatibile con manylinux2014, verrà prodotto un pacchetto pip non compatibile con manylinux2014 e il controllo finale fallirà. Non importa se desideri utilizzare TF-DF sul tuo computer. Un modo semplice per rendere compatibile la build manylinux2014 è utilizzare la finestra mobile menzionata sopra.

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

Questo comando installerà il pacchetto pip TF-DF ed eseguirà l'esempio in examples/minimal.py . Il pacchetto Pip si trova nella directory dist/ .

Se vuoi creare un pacchetto Pip per l'altra versione compatibile di Python, esegui:

# 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

In alternativa , puoi creare il pacchetto pip per tutte le versioni compatibili di Python utilizzando pyenv eseguendo il comando seguente. Vedi l'intestazione di tools/build_pip_package.sh per maggiori dettagli.

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

Mac OS

Impostare

Requisiti

  • Strumenti da riga di comando XCode
  • Bazel (consigliato Bazelisk )
  • Python >= 3.9
  • Idiota
  • Pyenv (per creare pacchetti Pip con più versioni Python)

Costruzione/Packaging (CPU Apple)

Se disponi di un computer MacOS con CPU Apple, puoi creare seguendo le seguenti istruzioni.

  1. Clona i tre repository e regola i percorsi.

    git clone https://github.com/tensorflow/decision-forests.git
    git clone https://github.com/google/yggdrasil-decision-forests.git
    git clone --branch boost-1.75.0 https://github.com/boostorg/boost.git
    (cd boost && git submodule update --init --checkout --force)
    # Adjust path TF-DF --> YDF
    perl -0777 -i.original -pe 's/    http_archive\(\n        name = "ydf",\n        urls = \["https:\/\/github.com\/google\/yggdrasil-decision-forests\/archive\/refs\/heads\/main.zip"\],\n        strip_prefix = "yggdrasil-decision-forests-main",\n    \)/    native.local_repository\(\n        name = "ydf",\n        path = "..\/yggdrasil-decision-forests",\n    \)/igs' decision-forests/third_party/yggdrasil_decision_forests/workspace.bzl
    # Adjust path YDF --> Boost
    perl -0777 -i.original -pe 's/    new_git_repository\(\n        name = "org_boost",\n        branch = branch,\n        build_file_content = build_file_content,\n        init_submodules = True,\n        recursive_init_submodules = True,\n        remote = "https:\/\/github.com\/boostorg\/boost",\n    \)/    native.new_local_repository\(\n        name = "org_boost",\n        path = "..\/boost",\n        build_file_content = build_file_content,\n    \)/igs' yggdrasil-decision-forests/third_party/boost/workspace.bzl
    

    Potrebbe essere necessario modificare manualmente lo script test_bazel.sh per correggere l'hash del commit di Tensorflow, poiché a volte non funziona correttamente per le build MacOS.

  2. (Facoltativo) Crea un nuovo ambiente virtuale e attivalo

    python3 -m venv venv
    source venv/source/activate
    
  3. Modifica la dipendenza di TensorFlow per le CPU Apple

    perl -0777 -i.original -pe 's/tensorflow~=/tensorflow-macos~=/igs' decision-forests/configure/setup.py
    
  4. Decidi quale versione di Python desideri utilizzare ed eseguire

    cd decision-forests
    # This will compile with the latest Tensorflow version in the tensorflow-macos repository.
    RUN_TESTS=1 PY_VERSION=3.9 TF_VERSION=mac-arm64 ./tools/test_bazel.sh
    
  5. Costruisci i pacchetti Pip

    # First, we deactivate our virtualenv, since the Pip script uses a different one.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_ARM64
    
  6. I pacchetti possono essere trovati in decision-forests/dist/ .

Compilazione incrociata per CPU Intel

Se disponi di una macchina MacOS con CPU Apple, esegui la compilazione incrociata TF-DF per macchine MacOS con CPU Intel come segue.

  1. Segui i passaggi 1-3 e 5 della guida per le CPU Apple, salta il passaggio 4 . Potrebbe essere necessario eseguire bazel --bazelrc=tensorflow_bazelrc clean --expunge per pulire la directory di build.

  2. Decidi quale versione di Python desideri utilizzare ed eseguire

    cd decision-forests
    # This will compile with the latest Tensorflow version in the tensorflow-macos repository.
    RUN_TESTS=0 PY_VERSION=3.9 TF_VERSION=mac-intel-crosscompile ./tools/test_bazel.sh
    
  3. Costruisci i pacchetti Pip

    # First, we deactivate our virtualenv, since the Pip script uses a different one.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
    
  4. I pacchetti possono essere trovati in decision-forests/dist/ .

Nota finale

La compilazione di TF-DF si basa sul pacchetto TensorFlow Pip e sulla dipendenza TensorFlow Bazel. Verrà compilata solo una piccola parte di TensorFlow. La compilazione di TF-DF su una singola potente workstation richiede circa 10 minuti.