Установка с помощью Пипа
Установите леса решений 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__)"
Сборка из исходного кода
Технические детали
Леса решений TensorFlow (TF-DF) реализуют специальные операции для TensorFlow и, следовательно, зависят от ABI TensorFlow. Поскольку ABI может меняться в зависимости от версии, любая версия TF-DF совместима только с одной конкретной версией TensorFlow.
Чтобы избежать компиляции и отправки всего TensorFlow с TF-DF, TF-DF ссылается на общую библиотеку libtensorflow, которая распространяется вместе с пакетом Pip TensorFlow. Компилируется только небольшая часть TensorFlow, а компиляция занимает всего около 10 минут на мощной рабочей станции (вместо нескольких часов при компиляции всего TensorFlow). Чтобы это работало, фактически скомпилированная версия TensorFlow и общая библиотека libtensorflow должны точно совпадать.
tools/test_bazel.sh
настраивает сборку TF-DF, чтобы обеспечить совпадение версий используемых пакетов. Подробности об этом процессе см. в исходном коде этого скрипта. Поскольку компиляция TensorFlow часто меняется, она поддерживает сборку только с использованием самых последних версий TensorFlow и каждую ночь.
Линукс
Докер-сборка
Самый простой способ собрать TF-DF в Linux — использовать докер TensorFlow build Build . Просто выполните следующие шаги для сборки:
./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
При этом скомпилированный код C++ помещается в каталог bazel-bin
. Обратите внимание, что это символическая ссылка, которая не отображается за пределами контейнера (т. е. сборка удаляется после выхода из контейнера).
Для сборки колес запустите
tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV
Это позволит установить Pyenv и Pyenv-virtualenv внутри докера и использовать их для установки Python во всех поддерживаемых версиях для сборки. Колеса размещаются в подкаталоге dist/
.
Ручная сборка
Создать TF-DF без докера может быть сложнее, и команда, вероятно, не сможет с этим помочь.
Требования
- Базель >= 6.3.0
- Питон >= 3
- Гит
- Pyenv, Pyenv-virtualenv (только если упаковка для многих версий Python)
Здание
Загрузите леса решений TensorFlow следующим образом:
# Download the source code of TF-DF.
git clone https://github.com/tensorflow/decision-forests.git
cd decision-forests
Необязательно: леса решений TensorFlow зависят от лесов решений Yggdrasil . Если вы хотите отредактировать код Yggdrasil, вы можете клонировать репозиторий Yggdrasil и соответствующим образом изменить путь в third_party/yggdrasil_decision_forests/workspace.bzl
.
Скомпилируйте и запустите модульные тесты TF-DF с помощью следующей команды. Обратите внимание, что test_bazel.sh
настроен для компилятора по умолчанию на вашем компьютере. Отредактируйте файл напрямую, чтобы изменить эту конфигурацию.
# Build and test TF-DF.
RUN_TESTS=1 PY_VERSION=3.9 TF_VERSION=2.16.1 ./tools/test_bazel.sh
Создайте и протестируйте пакет pip с помощью следующей команды. Замените python3.9 версией Python, которую вы хотите использовать. Обратите внимание: вам не обязательно использовать ту же версию Python, что и в скрипте test_bazel.sh
.
Если ваша конфигурация совместима с Manylinux2014 , будет создан pip-пакет, совместимый manylinux2014
.
Если ваша конфигурация несовместима с многоlinux2014, будет создан пакет pip, не совместимый manylinux2014
, и окончательная проверка завершится неудачно. Не имеет значения, хотите ли вы использовать TF-DF на своей машине. Простой способ обеспечить совместимость сборки с ManyLinux2014 — использовать упомянутый выше докер.
# Build and test a Pip package.
./tools/build_pip_package.sh python3.9
Эта команда установит пакет pip TF-DF и запустит пример в examples/minimal.py
. Пакет Pip находится в каталоге dist/
.
Если вы хотите создать пакет Pip для другой совместимой версии Python, запустите:
# 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
Альтернативно вы можете создать пакет 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
- Базель (рекомендуется Базелиск )
- Домашние пакеты: GNU coreutils, GNU sed, GNU grep.
- Pyenv (для сборки пакетов Pip с несколькими версиями Python)
Процессор Arm64
Для систем MacOS с процессором ARM64 выполните следующие действия:
Подготовьте свое окружение
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/bin/activate
Решите, какую версию Python и версию TensorFlow вы хотите использовать и запустить.
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.
Упакуйте сборку.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS
Пакеты можно найти в
decision-forests/dist/
.
Кросс-компиляция для процессоров Intel
Если у вас есть компьютер MacOS с процессором Apple, выполните кросс-компиляцию TF-DF для компьютеров MacOS с процессорами Intel следующим образом.
Подготовьте свое окружение
git clone https://github.com/tensorflow/decision-forests.git python3 -m venv venv source venv/source/activate
Решите, какую версию Python вы хотите использовать и запустите.
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.
Упакуйте сборку.
# Building the packages uses different virtualenvs through Pyenv. deactivate # Build the packages. ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
Пакеты можно найти в
decision-forests/dist/
. Обратите внимание, что они не тестировались, и было бы разумно протестировать их перед распространением.
Окна
Сборка Windows успешно создавалась в прошлом, но на данный момент не поддерживается. См. tools/test_bazel.bat
и tools/test_bazel.sh
для (возможно, устаревших) указателей для компиляции в Windows.
Для пользователей Windows YDF предлагает официальные сборки Windows и большую часть функций (и даже больше!) TF-DF.