Instalación

Instalación con Pip

Instale TensorFlow Decision Forests ejecutando:

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

Luego, verifique la instalación ejecutando:

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

Construir desde la fuente

Detalles técnicos

TensorFlow Decision Forests (TF-DF) implementa operaciones personalizadas para TensorFlow y, por lo tanto, depende de la ABI de TensorFlow. Dado que la ABI puede cambiar entre versiones, cualquier versión de TF-DF solo es compatible con una versión específica de TensorFlow.

Para evitar compilar y enviar todo TensorFlow con TF-DF, TF-DF se vincula con la biblioteca compartida libtensorflow que se distribuye con el paquete Pip de TensorFlow. Solo se compila una pequeña parte de Tensorflow y la compilación solo toma ~10 minutos en una estación de trabajo potente (en lugar de varias horas cuando se compila todo TensorFlow). Para garantizar que esto funcione, la versión de TensorFlow que está realmente compilada y la biblioteca compartida libtensorflow deben coincidir exactamente.

El script tools/test_bazel.sh configura la compilación TF-DF para garantizar que las versiones de los paquetes utilizados coincidan. Para obtener detalles sobre este proceso, consulte el código fuente de este script. Dado que la compilación de TensorFlow cambia con frecuencia, solo admite la compilación con las versiones más recientes de TensorFlow y todas las noches.

linux

Construcción de ventana acoplable

La forma más sencilla de compilar TF-DF en Linux es mediante la ventana acoplable Build Build de TensorFlow. Simplemente ejecute los siguientes pasos para construir:

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

Esto coloca el código C++ compilado en el directorio bazel-bin . Tenga en cuenta que este es un enlace simbólico que no está expuesto fuera del contenedor (es decir, la compilación desaparece después de salir del contenedor).

Para construir las ruedas, ejecute

tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV

Esto instalará Pyenv y Pyenv-virtualenv dentro de la ventana acoplable y lo usará para instalar Python en todas las versiones compatibles para la compilación. Las ruedas se colocan en el subdirectorio dist/ .

Construcción manual

Construir TF-DF sin la ventana acoplable puede ser más difícil y el equipo probablemente no pueda ayudar con esto.

Requisitos

  • Bazel >= 6.3.0
  • Pitón >= 3
  • git
  • Pyenv, Pyenv-virtualenv (solo si se empaqueta para muchas versiones de Python)

Edificio

Descargue TensorFlow Decision Forests de la siguiente manera:

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

Opcional: TensorFlow Decision Forests depende de Yggdrasil Decision Forests . Si desea editar el código de Yggdrasil, puede clonar el repositorio de Yggdrasil y cambiar la ruta en consecuencia third_party/yggdrasil_decision_forests/workspace.bzl .

Compile y ejecute las pruebas unitarias de TF-DF con el siguiente comando. Tenga en cuenta que test_bazel.sh está configurado para el compilador predeterminado en su máquina. Edite el archivo directamente para cambiar esta configuración.

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

Cree y pruebe un paquete pip con el siguiente comando. Reemplace python3.9 por la versión de Python que desea usar. Tenga en cuenta que no es necesario utilizar la misma versión de Python que en el script test_bazel.sh .

Si su configuración es compatible con manylinux2014 , se producirá un paquete pip compatible con manylinux2014 .

Si su configuración no es compatible con manylinux2014, se generará un paquete pip no compatible con manylinux2014 y la verificación final fallará. No importa si desea utilizar TF-DF en su propia máquina. Una forma sencilla de hacer que la compilación manylinux2014 sea compatible es utilizar la ventana acoplable mencionada anteriormente.

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

Este comando instalará el paquete pip TF-DF y ejecutará el ejemplo en examples/minimal.py . El paquete Pip se encuentra en el directorio dist/ .

Si desea crear un paquete Pip para la otra versión compatible de Python, ejecute:

# 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

Alternativamente , puede crear el paquete pip para todas las versiones compatibles de Python usando pyenv ejecutando el siguiente comando. Consulte el encabezado de tools/build_pip_package.sh para obtener más detalles.

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

Mac OS

Configuración

Requisitos

  • Herramientas de línea de comando XCode
  • Bazel (recomendado Bazelisco )
  • Paquetes caseros: GNU coreutils, GNU sed, GNU grep
  • Pyenv (para crear paquetes Pip con múltiples versiones de Python)

Procesador Arm64

Para sistemas MacOS con CPU ARM64, siga estos pasos:

  1. Prepara tu entorno

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/bin/activate
    
  2. Decide qué versión de Python y qué versión de TensorFlow quieres usar y ejecutar

    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. Empaqueta la construcción.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS
    
  4. Los paquetes se pueden encontrar en decision-forests/dist/ .

Compilación cruzada para CPU Intel

Si tiene una máquina MacOS con CPU Apple, realice una compilación cruzada de TF-DF para máquinas MacOS con CPU Intel de la siguiente manera.

  1. Prepara tu entorno

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/source/activate
    
  2. Decide qué versión de Python quieres usar y ejecutar

    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. Empaqueta la construcción.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
    
  4. Los paquetes se pueden encontrar en decision-forests/dist/ . Tenga en cuenta que no han sido probados y sería prudente probarlos antes de su distribución.

ventanas

En el pasado se produjo con éxito una compilación de Windows, pero no se mantiene en este momento. Consulte tools/test_bazel.bat y tools/test_bazel.sh para obtener sugerencias (posiblemente desactualizadas) para compilar en Windows.

Para los usuarios de Windows, YDF ofrece versiones oficiales de Windows y la mayor parte de la funcionalidad (¡y más!) de TF-DF.