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:
- 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.
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.
(Opcional) Crie um novo ambiente virtual e ative-o
python3 -m venv venv source venv/source/activate
Ajuste a dependência do TensorFlow para CPUs Apple
perl -0777 -i.original -pe 's/tensorflow~=/tensorflow-macos~=/igs' decision-forests/configure/setup.py
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
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
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.
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.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
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
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.