התקנה

התקנה עם Pip

התקן את TensorFlow Decision Forests על ידי הפעלת:

# 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 ב-Linux היא באמצעות ה-build 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 . שימו לב שמדובר בקישור סמלי שאינו חשוף מחוץ לקונטיינר (כלומר ה-build נעלם לאחר עזיבת הקונטיינר).

לבניית הגלגלים, רוץ

tools/build_pip_package.sh ALL_VERSIONS INSTALL_PYENV

זה יתקין את Pyenv ו- Pyenv-virtualenv בתוך ה-docker ותשתמש בו כדי להתקין את Python בכל הגרסאות הנתמכות לבנייה. הגלגלים ממוקמים בספריית המשנה 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

צור ובדוק חבילת pip עם הפקודה הבאה. החלף את python3.9 בגרסה של python שבה ברצונך להשתמש. שימו לב שאינכם חייבים להשתמש באותה גרסה של Python כמו בסקריפט test_bazel.sh .

אם התצורה שלך תואמת ל- manylinux2014 , תיווצר חבילת pip תואמת manylinux2014 .

אם התצורה שלך אינה תואמת ל-manylinux2014, תופק חבילת pip שאינה תואמת manylinux2014 , והבדיקה הסופית תיכשל. זה לא משנה אם אתה רוצה להשתמש ב-TF-DF במחשב שלך. דרך קלה להפוך את ה-build manylinux2014 תואם היא להשתמש ב-docker שהוזכר לעיל.

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

פקודה זו תתקין את חבילת TF-DF pip ותפעיל את הדוגמה ב- 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
  • Bazel (מומלץ Bazelisk )
  • חבילות ביתיות: GNU coreutils, GNU sed, GNU grep
  • Pyenv (לבניית חבילות Pip עם גרסאות פייתון מרובות)

מעבד 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/ .

קומפילציה צולבת עבור מעבדי אינטל

אם יש לך מכונת MacOS עם מעבד Apple, בצע קומפילציה צולבת של TF-DF עבור מכונות MacOS עם מעבדי אינטל באופן הבא.

  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.