Instalação

Instalação com Pip

Instale o TensorFlow Decision Forests executando:

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

Em seguida, verifique a instalação executando:

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

Construir a partir da fonte

Linux

Configurar

Requisitos

  • Bazel >= 3.7.2
  • Pitão >= 3
  • Git
  • Pacotes Python: pandas numpy tensorflow

Em vez de instalar as dependências manualmente, você pode usar a janela de encaixe do TensorFlow Build . Se você escolher esta opção, instale o Docker:

Compilação

Baixe o TensorFlow Decision Forests da seguinte maneira:

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

Opcional: as florestas de decisão do TensorFlow dependem das florestas de decisão Yggdrasil . Se quiser editar o código Yggdrasil, você pode clonar o github Yggdrasil e alterar o caminho de acordo em third_party/yggdrasil_decision_forests/workspace.bzl .

Opcional: Se desejar usar a opção docker, execute o script start_compile_docker.sh e continue na próxima etapa. Se você não quiser usar a opção docker, prossiga diretamente para a próxima etapa.

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

Compile e execute os testes unitários do TF-DF com o seguinte comando. Observe que test_bazel.sh está configurado para python3.8 e o compilador padrão em sua máquina. Edite o arquivo diretamente para alterar esta configuração.

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

Crie e teste um pacote pip com o seguinte comando. Substitua python3.8 pela versão do python que você deseja usar. Observe que você não precisa usar a mesma versão do Python do script test_bazel.sh .

Se sua configuração for compatível com manylinux2014 , um pacote pip compatível com manylinux2014 será produzido.

Se a sua configuração não for compatível com o Manylinux2014, um pacote pip não compatível com manylinux2014 será produzido e a verificação final falhará. Não importa se você deseja usar o TF-DF em sua própria máquina. Uma maneira fácil de tornar a compilação do Manylinux2014 compatível é usar o docker mencionado acima.

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

Este comando instalará o pacote pip TF-DF e executará o exemplo em examples/minimal.py . O pacote Pip está localizado no diretório dist/ .

Se você deseja criar um pacote Pip para outra versão compatível do Python, execute:

# 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 , você pode criar o pacote pip para todas as versões compatíveis do python usando pyenv executando o seguinte comando. Veja o cabeçalho de tools/build_pip_package.sh para mais detalhes.

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

Mac OS

Configurar

Requisitos

  • Ferramentas de linha de comando XCode
  • Bazel ( Bazelisk recomendado)
  • Pitão >= 3.9
  • Git
  • Pyenv (para construir pacotes Pip com múltiplas versões do Python)

Construção/Embalagem (CPU Apple)

Se você tiver uma máquina MacOS com CPU Apple, poderá construir com as instruções a seguir.

  1. Clone os três repositórios e ajuste os caminhos.

    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
    

    Pode ser necessário ajustar o script test_bazel.sh manualmente para corrigir o hash de commit do Tensorflow, já que às vezes ele é quebrado em compilações do MacOS.

  2. (Opcional) Crie um novo ambiente virtual e ative-o

    python3 -m venv venv
    source venv/source/activate
    
  3. Ajuste a dependência do TensorFlow para CPUs Apple

    perl -0777 -i.original -pe 's/tensorflow~=/tensorflow-macos~=/igs' decision-forests/configure/setup.py
    
  4. Decida qual versão do Python você deseja usar e executar

    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. Construa os pacotes 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. Os pacotes podem ser encontrados em decision-forests/dist/ .

Compilação cruzada para CPUs Intel

Se você tiver uma máquina MacOS com CPU Apple, faça a compilação cruzada do TF-DF para máquinas MacOS com CPUs Intel da seguinte maneira.

  1. Siga as etapas 1-3 e 5 do guia para CPUs Apple e pule a etapa 4 . Pode ser necessário executar bazel --bazelrc=tensorflow_bazelrc clean --expunge para limpar seu diretório de compilação.

  2. Decida qual versão do Python você deseja usar e executar

    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. Construa os pacotes 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. Os pacotes podem ser encontrados em decision-forests/dist/ .

Nota final

A compilação do TF-DF depende do pacote TensorFlow Pip e da dependência do TensorFlow Bazel. Apenas uma pequena parte do TensorFlow será compilada. Compilar o TF-DF em uma única estação de trabalho poderosa leva aproximadamente 10 minutos.