نصب و راه اندازی

نصب با پیپ

جنگل های تصمیم 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 Decision Forests (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 در لینوکس، استفاده از Build Docker TensorFlow است. برای ساخت کافیست مراحل زیر را اجرا کنید:

./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 داخل داکر نصب می شود و از آن برای نصب پایتون در تمام نسخه های پشتیبانی شده برای ساختن استفاده می شود. چرخ ها در دایرکتوری فرعی dist/ قرار می گیرند.

ساخت دستی

ساخت TF-DF بدون داکر ممکن است سخت‌تر باشد و تیم احتمالاً نمی‌تواند در این مورد کمک کند.

الزامات

  • Bazel >= 6.3.0
  • پایتون >= 3
  • Git
  • Pyenv، Pyenv-virtualenv (فقط در صورت بسته بندی برای بسیاری از نسخه های پایتون)

ساختمان

TensorFlow Decision Forests را به صورت زیر دانلود کنید:

# 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 تغییر دهید.

با دستور زیر تست های واحد 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

با دستور زیر یک بسته پیپ ایجاد و تست کنید. python3.9 را با نسخه پایتونی که می خواهید استفاده کنید جایگزین کنید. توجه داشته باشید که لازم نیست از همان نسخه پایتون مانند اسکریپت test_bazel.sh استفاده کنید.

اگر پیکربندی شما با manylinux2014 سازگار باشد، یک بسته پیپ سازگار با manylinux2014 تولید خواهد شد.

اگر پیکربندی شما با manylinux2014 سازگار نباشد، یک بسته پیپ غیر سازگار با manylinux2014 تولید خواهد شد و بررسی نهایی ناموفق خواهد بود. مهم نیست که می خواهید از TF-DF در دستگاه خود استفاده کنید. یک راه آسان برای سازگار کردن بیلد manylinux2014 استفاده از داکر ذکر شده در بالا است.

# Build and test a Pip package.
./tools/build_pip_package.sh python3.9

این دستور بسته پیپ TF-DF را نصب می کند و مثال را در examples/minimal.py اجرا می کند. بسته Pip در دایرکتوری dist/ قرار دارد.

اگر می خواهید یک بسته Pip برای نسخه سازگار دیگر پایتون ایجاد کنید، اجرا کنید:

# 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

همچنین ، می‌توانید با اجرای دستور زیر، بسته پیپ را برای تمام نسخه‌های سازگار پایتون با استفاده از pyenv ایجاد کنید. برای جزئیات بیشتر به هدر tools/build_pip_package.sh مراجعه کنید.

# Build and test all the Pip package using Pyenv.
./tools/build_pip_package.sh ALL_VERSIONS

سیستم عامل مک

برپایی

الزامات

  • ابزارهای خط فرمان XCode
  • Bazel ( بازلیسک توصیه شده)
  • بسته های Homebrew: GNU coreutils، GNU sed، GNU grep
  • Pyenv (برای ساخت بسته های Pip با چندین نسخه پایتون)

سی پی یو Arm64

برای سیستم‌های MacOS با CPU ARM64، مراحل زیر را دنبال کنید:

  1. محیط خود را آماده کنید

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/bin/activate
    
  2. تصمیم بگیرید که کدام نسخه پایتون و نسخه 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/ یافت.

کامپایل متقابل برای پردازنده های اینتل

اگر یک دستگاه MacOS با CPU اپل دارید، TF-DF را برای دستگاه‌های MacOS با CPU اینتل به صورت زیر کامپایل کنید.

  1. محیط خود را آماده کنید

    git clone https://github.com/tensorflow/decision-forests.git
    python3 -m venv venv
    source venv/source/activate
    
  2. تصمیم بگیرید که کدام نسخه پایتون را می خواهید استفاده کنید و اجرا کنید

    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/ یافت. توجه داشته باشید که تست نشده اند و عاقلانه است که آنها را قبل از توزیع آزمایش کنید.

پنجره ها

یک نسخه ویندوز در گذشته با موفقیت تولید شده است، اما در حال حاضر حفظ نشده است. برای کامپایل کردن در ویندوز، به tools/test_bazel.bat و tools/test_bazel.sh (احتمالاً قدیمی) مراجعه کنید.

برای کاربران ویندوز، YDF بیلدهای رسمی ویندوز و بیشتر قابلیت ها (و بیشتر!) TF-DF را ارائه می دهد.