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

linux

Configuración

Requisitos

  • Bazel >= 3.7.2
  • Pitón >= 3
  • git
  • Paquetes de Python: numerosos pandas de tensorflow

En lugar de instalar las dependencias manualmente, puede utilizar la ventana acoplable TensorFlow Build . Si elige estas opciones, instale Docker:

Compilacion

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 github de Yggdrasil y cambiar la ruta en consecuencia third_party/yggdrasil_decision_forests/workspace.bzl .

Opcional: si desea utilizar la opción Docker, ejecute el script start_compile_docker.sh y continúe con el siguiente paso. Si no desea utilizar la opción de la ventana acoplable, continúe directamente con el siguiente paso.

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

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

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

Cree y pruebe un paquete pip con el siguiente comando. Reemplace python3.8 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 producirá 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 )
  • Pitón >= 3.9
  • git
  • Pyenv (para crear paquetes Pip con múltiples versiones de Python)

Construcción/Embalaje (CPU Apple)

Si tiene una máquina MacOS con CPU Apple, puede compilarla con las siguientes instrucciones.

  1. Clona los tres repositorios y ajusta las rutas.

    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
    

    Es posible que deba ajustar el script test_bazel.sh manualmente para corregir el hash de confirmación de Tensorflow, ya que a veces no funciona en las compilaciones de MacOS.

  2. (Opcional) Cree un entorno virtual nuevo y actívelo

    python3 -m venv venv
    source venv/source/activate
    
  3. Ajustar la dependencia de TensorFlow para las CPU de Apple

    perl -0777 -i.original -pe 's/tensorflow~=/tensorflow-macos~=/igs' decision-forests/configure/setup.py
    
  4. Decide qué versión de Python quieres usar y ejecutar

    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. Construya los paquetes 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. 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. Siga los pasos 1 a 3 y 5 de la guía para CPU de Apple, omita el paso 4 . Es posible que necesites ejecutar bazel --bazelrc=tensorflow_bazelrc clean --expunge para limpiar tu directorio de compilación.

  2. Decide qué versión de Python quieres usar y ejecutar

    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. Construya los paquetes 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. Los paquetes se pueden encontrar en decision-forests/dist/ .

nota final

La compilación de TF-DF se basa en el paquete TensorFlow Pip y la dependencia de TensorFlow Bazel. Solo se compilará una pequeña parte de TensorFlow. La compilación de TF-DF en una única y potente estación de trabajo lleva aproximadamente 10 minutos.