Установка

Установка с помощью Пипа

Установите леса решений 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 .

Если ваша конфигурация несовместима с Manylinux2014, будет создан пакет 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 выполните следующие действия:

  1. Подготовьте свое окружение

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/bin/activate
    
  2. Решите, какую версию 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.
    
  3. Упакуйте сборку.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS
    
  4. Пакеты можно найти в decision-forests/dist/ .

Кросс-компиляция для процессоров Intel

Если у вас есть компьютер MacOS с процессором Apple, выполните кросс-компиляцию TF-DF для компьютеров MacOS с процессорами Intel следующим образом.

  1. Подготовьте свое окружение

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/source/activate
    
  2. Решите, какую версию 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.
    
  3. Упакуйте сборку.

    # Building the packages uses different virtualenvs through Pyenv.
    deactivate
    # Build the packages.
    ./tools/build_pip_package.sh ALL_VERSIONS_MAC_INTEL_CROSSCOMPILE
    
  4. Пакеты можно найти в decision-forests/dist/ . Обратите внимание, что они не тестировались, и было бы разумно протестировать их перед распространением.

Окна

Сборка Windows успешно создавалась в прошлом, но на данный момент не поддерживается. См. tools/test_bazel.bat и tools/test_bazel.sh для (возможно, устаревших) указателей для компиляции в Windows.

Для пользователей Windows YDF предлагает официальные сборки Windows и большую часть функций (и даже больше!) TF-DF.