Installation avec Pip
Installez TensorFlow Decision Forests en exécutant :
# Install TensorFlow Decision Forests.
pip3 install tensorflow_decision_forests --upgrade
Ensuite, vérifiez l'installation avec en exécutant :
# Check the version of TensorFlow Decision Forests.
python3 -c "import tensorflow_decision_forests as tfdf; print('Found TF-DF v' + tfdf.__version__)"
Construire à partir des sources
Détails techniques
TensorFlow Decision Forests (TF-DF) implémente des opérations personnalisées pour TensorFlow et dépend donc de l'ABI de TensorFlow. Étant donné que l'ABI peut changer d'une version à l'autre, toute version de TF-DF n'est compatible qu'avec une version spécifique de TensorFlow.
Pour éviter de compiler et d'expédier l'intégralité de TensorFlow avec TF-DF, TF-DF est lié à la bibliothèque partagée libtensorflow distribuée avec le package Pip de TensorFlow. Seule une petite partie de Tensorflow est compilée et la compilation ne prend qu'environ 10 minutes sur un poste de travail puissant (au lieu de plusieurs heures lors de la compilation de l'intégralité de TensorFlow). Pour garantir que cela fonctionne, la version de TensorFlow réellement compilée et la bibliothèque partagée libtensorflow doivent correspondre exactement.
Le script tools/test_bazel.sh
configure la build TF-DF pour garantir que les versions des packages utilisés correspondent. Pour plus de détails sur ce processus, consultez le code source de ce script. Étant donné que la compilation TensorFlow change souvent, elle ne prend en charge la construction qu'avec les versions TensorFlow les plus récentes et tous les soirs.
Linux
Construction Docker
Le moyen le plus simple de créer TF-DF sous Linux consiste à utiliser le build Build docker de TensorFlow. Exécutez simplement les étapes suivantes pour construire :
./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
Cela place le code C++ compilé dans le répertoire bazel-bin
. Notez qu'il s'agit d'un lien symbolique qui n'est pas exposé en dehors du conteneur (c'est-à-dire que la build disparaît après avoir quitté le conteneur).
Pour construire les roues, exécutez
tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV
Cela installera Pyenv et Pyenv-virtualenv dans le docker et l'utilisera pour installer Python dans toutes les versions prises en charge pour la construction. Les roues sont placées dans le sous-répertoire dist/
.
Construction manuelle
Construire TF-DF sans le docker pourrait être plus difficile, et l'équipe n'est probablement pas en mesure de vous aider.
Exigences
- Bazel >= 6.3.0
- Python >= 3
- Git
- Pyenv, Pyenv-virtualenv (uniquement en cas d'empaquetage pour de nombreuses versions de Python)
Bâtiment
Téléchargez les forêts de décision TensorFlow comme suit :
# Download the source code of TF-DF.
git clone https://github.com/tensorflow/decision-forests.git
cd decision-forests
Facultatif : les forêts de décision TensorFlow dépendent des forêts de décision Yggdrasil . Si vous souhaitez modifier le code Yggdrasil, vous pouvez cloner le référentiel Yggdrasil et modifier le chemin en conséquence dans third_party/yggdrasil_decision_forests/workspace.bzl
.
Compilez et exécutez les tests unitaires de TF-DF avec la commande suivante. Notez que test_bazel.sh
est configuré pour le compilateur par défaut sur votre machine. Modifiez directement le fichier pour modifier cette configuration.
# Build and test TF-DF.
RUN_TESTS=1 PY_VERSION=3.9 TF_VERSION=2.16.1 ./tools/test_bazel.sh
Créez et testez un package pip avec la commande suivante. Remplacez python3.9 par la version de python que vous souhaitez utiliser. Notez que vous n'êtes pas obligé d'utiliser la même version de Python que dans le script test_bazel.sh
.
Si votre configuration est compatible avec manylinux2014 , un package pip compatible manylinux2014
sera produit.
Si votre configuration n'est pas compatible avec manylinux2014, un package pip non compatible avec manylinux2014
sera produit et la vérification finale échouera. Peu importe si vous souhaitez utiliser TF-DF sur votre propre machine. Un moyen simple de rendre la build manylinux2014 compatible consiste à utiliser le docker mentionné ci-dessus.
# Build and test a Pip package.
./tools/build_pip_package.sh python3.9
Cette commande installera le package pip TF-DF et exécutera l'exemple dans examples/minimal.py
. Le package Pip se trouve dans le répertoire dist/
.
Si vous souhaitez créer un package Pip pour l'autre version compatible de Python, exécutez :
# 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
Alternativement , vous pouvez créer le package pip pour toutes les versions compatibles de Python à l'aide de pyenv en exécutant la commande suivante. Voir l'en-tête de tools/build_pip_package.sh
pour plus de détails.
# Build and test all the Pip package using Pyenv.
./tools/build_pip_package.sh ALL_VERSIONS
Mac OS
Installation
Exigences
- Outils de ligne de commande XCode
- Bazel ( Bazelisk recommandé)
- Paquets homebrew : GNU coreutils, GNU sed, GNU grep
- Pyenv (pour créer les packages Pip avec plusieurs versions de Python)
Processeur Arm64
Pour les systèmes MacOS dotés d'un processeur ARM64, procédez comme suit :
Préparez votre environnement
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/bin/activate
Décidez quelle version de Python et de TensorFlow vous souhaitez utiliser et exécuter
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.
Packagez la version.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS
Les packages peuvent être trouvés dans
decision-forests/dist/
.
Compilation croisée pour les processeurs Intel
Si vous possédez une machine MacOS avec un processeur Apple, compilez de manière croisée TF-DF pour les machines MacOS avec des processeurs Intel comme suit.
Préparez votre environnement
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/source/activate
Décidez quelle version de Python vous souhaitez utiliser et exécuter
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.
Packagez la version.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
Les packages peuvent être trouvés dans
decision-forests/dist/
. Notez qu’ils n’ont pas été testés et qu’il serait prudent de les tester avant distribution.
Fenêtres
Une version Windows a été produite avec succès dans le passé, mais n'est pas maintenue à ce stade. Voir tools/test_bazel.bat
et tools/test_bazel.sh
pour des pointeurs (éventuellement obsolètes) pour la compilation sous Windows.
Pour les utilisateurs Windows, YDF propose les versions officielles de Windows et la plupart des fonctionnalités (et plus encore !) de TF-DF.