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
Detalhes técnicos
O TensorFlow Decision Forests (TF-DF) implementa operações personalizadas para o TensorFlow e, portanto, depende da ABI do TensorFlow. Como a ABI pode mudar entre versões, qualquer versão do TF-DF só é compatível com uma versão específica do TensorFlow.
Para evitar a compilação e o envio de todo o TensorFlow com TF-DF, o TF-DF vincula-se à biblioteca compartilhada libtensorflow que é distribuída com o pacote Pip do TensorFlow. Apenas uma pequena parte do TensorFlow é compilada e a compilação leva apenas cerca de 10 minutos em uma estação de trabalho forte (em vez de várias horas ao compilar todo o TensorFlow). Para garantir que isso funcione, a versão do TensorFlow que é realmente compilada e a biblioteca compartilhada libtensorflow devem corresponder exatamente.
O script tools/test_bazel.sh
configura a construção do TF-DF para garantir que as versões dos pacotes usados correspondam. Para obter detalhes sobre esse processo, consulte o código-fonte deste script. Como a compilação do TensorFlow muda frequentemente, ela só oferece suporte à compilação com as versões mais recentes do TensorFlow e todas as noites.
Linux
Construção do Docker
A maneira mais fácil de construir TF-DF no Linux é usando build Build docker do TensorFlow. Basta executar as seguintes etapas 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
Isso coloca o código C++ compilado no diretório bazel-bin
. Observe que este é um link simbólico que não é exposto fora do contêiner (ou seja, a compilação desaparece após sair do contêiner).
Para construir as rodas, execute
tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV
Isso instalará Pyenv e Pyenv-virtualenv dentro da janela de encaixe e os usará para instalar o Python em todas as versões suportadas para construção. As rodas são colocadas no subdiretório dist/
.
Construção manual
Construir o TF-DF sem o docker pode ser mais difícil e a equipe provavelmente não será capaz de ajudar com isso.
Requisitos
- Bazel >= 6.3.0
- Pitão >= 3
- Git
- Pyenv, Pyenv-virtualenv (somente se for empacotado para muitas versões do Python)
Prédio
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 repositório Yggdrasil e alterar o caminho adequadamente em third_party/yggdrasil_decision_forests/workspace.bzl
.
Compile e execute os testes unitários do TF-DF com o seguinte comando. Observe que test_bazel.sh
está configurado para o compilador padrão em sua máquina. Edite o arquivo diretamente para alterar esta configuração.
# Build and test TF-DF.
RUN_TESTS=1 PY_VERSION=3.9 TF_VERSION=2.16.1 ./tools/test_bazel.sh
Crie e teste um pacote pip com o seguinte comando. Substitua python3.9 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)
- Pacotes Homebrew: GNU coreutils, GNU sed, GNU grep
- Pyenv (para construir os pacotes Pip com múltiplas versões do Python)
Processador Arm64
Para sistemas MacOS com CPU ARM64, siga estas etapas:
Prepare seu ambiente
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/bin/activate
Decida qual versão do Python e do TensorFlow você deseja usar e executar
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.
Empacote a compilação.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS
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.
Prepare seu ambiente
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/source/activate
Decida qual versão do Python você deseja usar e executar
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.
Empacote a compilação.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
Os pacotes podem ser encontrados em
decision-forests/dist/
. Observe que eles não foram testados e seria prudente testá-los antes da distribuição.
Windows
Uma compilação do Windows foi produzida com êxito no passado, mas não é mantida neste momento. Consulte tools/test_bazel.bat
e tools/test_bazel.sh
para obter dicas (possivelmente desatualizadas) para compilação no Windows.
Para usuários do Windows, o YDF oferece compilações oficiais do Windows e a maior parte das funcionalidades (e muito mais!) do TF-DF.