Установка с Пипом
Установите леса принятия решений TensorFlow, выполнив:
# Install TensorFlow Decision Forests.
pip3 install tensorflow_decision_forests --upgrade
Затем проверьте установку, запустив:
# Check the version of TensorFlow Decision Forests.
python3 -c "import tensorflow_decision_forests as tfdf; print('Found TF-DF v' + tfdf.__version__)"
Сборка из исходников
линукс
Настраивать
Требования
- Базель >= 3.7.2
- Питон >= 3
- Гит
- Пакеты Python: numpy tensorflow pandas
Вместо установки зависимостей руками можно использовать докер TensorFlow Build . Если вы выберете этот вариант, установите Docker:
- Докер .
Сборник
Загрузите леса решений TensorFlow следующим образом:
# Download the source code of TF-DF.
git clone https://github.com/tensorflow/decision-forests.git
cd decision-forests
Необязательно: TensorFlow Decision Forests зависит от Yggdrasil Decision Forests . Если вы хотите отредактировать код Yggdrasil, вы можете клонировать гитхаб Yggdrasil и соответствующим образом изменить путь в third_party/yggdrasil_decision_forests/workspace.bzl
.
Необязательно: если вы хотите использовать опцию docker, запустите сценарий start_compile_docker.sh
и перейдите к следующему шагу. Если вы не хотите использовать опцию Docker, сразу переходите к следующему шагу.
# Optional: Install and start the build docker.
./tools/start_compile_docker.sh
Скомпилируйте и запустите модульные тесты TF-DF с помощью следующей команды. Обратите внимание, что test_bazel.sh
настроен для python3.8
и компилятора по умолчанию на вашем компьютере. Отредактируйте файл напрямую, чтобы изменить эту конфигурацию.
# Build and test TF-DF.
./tools/test_bazel.sh
Создайте и протестируйте пакет pip с помощью следующей команды. Замените python3.8 на версию python, которую вы хотите использовать. Обратите внимание, что вам не обязательно использовать ту же версию Python, что и в сценарии test_bazel.sh
.
Если ваша конфигурация совместима с manylinux2014 , будет создан пакет pip, совместимый с manylinux2014
.
Если ваша конфигурация несовместима с manylinux2014, будет создан pip-пакет, не совместимый manylinux2014
, и окончательная проверка завершится неудачно. Неважно, хотите ли вы использовать TF-DF на своей машине. Простой способ сделать сборку совместимой с manylinux2014 — использовать докер, упомянутый выше.
# Build and test a Pip package.
./tools/build_pip_package.sh python3.8
Эта команда установит пакет pip TF-DF и запустит пример в examples/minimal.py
. Пакет Pip находится в каталоге dist/
.
Если вы хотите создать пакет Pip для другой совместимой версии Python, запустите:
# Install the other versions of python (assume only python3.8 is installed; this is the case in the build docker).
sudo apt-get update && sudo apt-get install python3.7 python3.9 python3-pip
# Create the Pip package for the other version of python
./tools/build_pip_package.sh python3.7
./tools/build_pip_package.sh python3.9
Кроме того , вы можете создать пакет pip для всех совместимых версий Python, используя pyenv, выполнив следующую команду. Подробнее см. в заголовке tools/build_pip_package.sh
.
# Build and test all the Pip package using Pyenv.
./tools/build_pip_package.sh ALL_VERSIONS
MacOS
Настраивать
Требования
- Инструменты командной строки XCode
- Базель (рекомендуется Базелиск )
- Питон >= 3.8
- Гит
- Pyenv (для сборки пакетов Pip с несколькими версиями Python)
Сборка/упаковка (процессор Apple)
Если у вас есть компьютер MacOS с процессором Apple, вы можете выполнить сборку, следуя следующим инструкциям.
Клонируйте три репозитория и настройте пути.
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
Возможно, вам придется вручную настроить сценарий test_bazel.sh, чтобы исправить хэш фиксации Tensorflow, поскольку он иногда не работает для сборок MacOS.
(Необязательно) Создайте новую виртуальную среду и активируйте ее.
python3 -m venv venv source venv/source/activate
Настройте зависимость TensorFlow для процессоров Apple.
perl -0777 -i.original -pe 's/tensorflow~=/tensorflow-macos~=/igs' decision-forests/configure/setup.py
Решите, какую версию Python вы хотите использовать и запустить
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
Создайте пакеты пипсов
# 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
Пакеты можно найти в
decision-forests/dist/
.
Кросс-компиляция для процессоров Intel
Если у вас есть компьютер MacOS с процессором Apple, выполните кросс-компиляцию TF-DF для компьютеров MacOS с процессором Intel следующим образом.
Выполните шаги 1–3 и 5 руководства для процессоров Apple, пропустите шаг 4 . Возможно, вам придется запустить
bazel --bazelrc=tensorflow_bazelrc clean --expunge
чтобы очистить каталог сборки.Решите, какую версию Python вы хотите использовать и запустить
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
Создайте пакеты пипсов
# 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
Пакеты можно найти в
decision-forests/dist/
.
Последнее примечание
Компиляция TF-DF зависит от пакета TensorFlow Pip и зависимости TensorFlow Bazel. Будет скомпилирована только небольшая часть TensorFlow. Компиляция TF-DF на одной мощной рабочей станции занимает ~10 минут.