Установка

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

Установите леса решений 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 Build . Если вы выберете этот вариант, установите Docker:

Сборник

Загрузите леса решений TensorFlow следующим образом:

# Download the source code of TF-DF.
git clone https://github.com/tensorflow/decision-forests.git
cd decision-forests

Необязательно: леса решений TensorFlow зависят от лесов решений Yggdrasil . Если вы хотите отредактировать код Yggdrasil, вы можете клонировать GitHub 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.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
  • Базель (рекомендуется Базелиск )
  • Питон >= 3,9
  • Гит
  • Pyenv (для сборки пакетов Pip с несколькими версиями Python)

Сборка/упаковка (процессор Apple)

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

  1. Клонируйте три репозитория и настройте пути.

    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.

  2. (Необязательно) Создайте новую виртуальную среду и активируйте ее.

    python3 -m venv venv
    source venv/source/activate
    
  3. Настройте зависимость TensorFlow для процессоров Apple.

    perl -0777 -i.original -pe 's/tensorflow~=/tensorflow-macos~=/igs' decision-forests/configure/setup.py
    
  4. Решите, какую версию 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
    
  5. Сборка пакетов 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
    
  6. Пакеты можно найти в decision-forests/dist/ .

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

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

  1. Выполните шаги 1–3 и 5 руководства для процессоров Apple, пропустите шаг 4 . Возможно, вам придется запустить bazel --bazelrc=tensorflow_bazelrc clean --expunge чтобы очистить каталог сборки.

  2. Решите, какую версию 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
    
  3. Сборка пакетов 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
    
  4. Пакеты можно найти в decision-forests/dist/ .

Последнее замечание

Компиляция TF-DF опирается на пакет TensorFlow Pip и зависимость TensorFlow Bazel. Будет скомпилирована лишь небольшая часть TensorFlow. Компиляция TF-DF на одной мощной рабочей станции занимает около 10 минут.