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

Dettagli tecnici

TensorFlow Decision Forests (TF-DF) implementa operazioni personalizzate per TensorFlow e pertanto dipende dall'ABI di TensorFlow. Poiché l'ABI può cambiare da una versione all'altra, qualsiasi versione TF-DF è compatibile solo con una specifica versione di TensorFlow.

Per evitare di compilare e spedire tutto TensorFlow con TF-DF, TF-DF si collega alla libreria condivisa libtensorflow distribuita con il pacchetto Pip di TensorFlow. Viene compilata solo una piccola parte di Tensorflow e la compilazione richiede solo circa 10 minuti su una workstation potente (invece di diverse ore quando si compila tutto TensorFlow). Per garantire che funzioni, la versione di TensorFlow effettivamente compilata e la libreria condivisa libtensorflow devono corrispondere esattamente.

Lo script tools/test_bazel.sh configura la build TF-DF per garantire che le versioni dei pacchetti utilizzati corrispondano. Per i dettagli su questo processo, vedere il codice sorgente di questo script. Poiché la compilazione di TensorFlow cambia spesso, supporta solo la compilazione con le versioni TensorFlow più recenti e di notte.

Linux

Creazione Docker

Il modo più semplice per creare TF-DF su Linux è utilizzare la finestra mobile Build di TensorFlow. Basta eseguire i seguenti passaggi per creare:

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

Ciò inserisce il codice C++ compilato nella directory bazel-bin . Tieni presente che questo è un collegamento simbolico che non viene esposto all'esterno del contenitore (ovvero la build scompare dopo aver lasciato il contenitore).

Per costruire le ruote, corri

tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV

Questo installerà Pyenv e Pyenv-virtualenv all'interno della finestra mobile e lo utilizzerà per installare Python in tutte le versioni supportate per la creazione. Le ruote vengono posizionate nella sottodirectory dist/ .

Costruzione manuale

Costruire TF-DF senza la finestra mobile potrebbe essere più difficile e il team probabilmente non è in grado di aiutare in questo.

Requisiti

  • Bazel >= 6.3.0
  • Pitone >= 3
  • Va bene
  • Pyenv, Pyenv-virtualenv (solo se si crea il pacchetto per molte versioni Python)

Edificio

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 repository Yggdrasil e modificare il percorso di conseguenza in third_party/yggdrasil_decision_forests/workspace.bzl .

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

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

Crea e testa un pacchetto pip con il comando seguente. Sostituisci python3.9 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 con 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 sulla tua macchina. 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

MacOS

Impostare

Requisiti

  • Strumenti da riga di comando XCode
  • Bazel (consigliato Bazelisk )
  • Pacchetti homebrew: GNU coreutils, GNU sed, GNU grep
  • Pyenv (per creare pacchetti Pip con più versioni Python)

CPU Arm64

Per i sistemi MacOS con CPU ARM64, attenersi alla seguente procedura:

  1. Prepara il tuo ambiente

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/bin/activate
    
  2. Decidi quale versione di Python e di TensorFlow desideri utilizzare ed eseguire

    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. Imballa la build.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS
    
  4. 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. Prepara il tuo ambiente

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/source/activate
    
  2. Decidi quale versione di Python desideri utilizzare ed eseguire

    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. Imballa la build.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
    
  4. I pacchetti possono essere trovati in decision-forests/dist/ . Tieni presente che non sono stati testati e sarebbe prudente testarli prima della distribuzione.

Finestre

In passato è stata prodotta con successo una build di Windows, ma al momento non viene mantenuta. Vedere tools/test_bazel.bat e tools/test_bazel.sh per puntatori (probabilmente obsoleti) per la compilazione su Windows.

Per gli utenti Windows, YDF offre build ufficiali di Windows e la maggior parte delle funzionalità (e altro!) di TF-DF.