תוספות TensorFlow




תוספות TensorFlow הוא מאגר של תרומות התואמות לדפוסי API מבוססים, אך מיישמים פונקציונליות חדשה שאינה זמינה בליבה של TensorFlow. TensorFlow תומך באופן מקורי במספר רב של אופרטורים, שכבות, מדדים, הפסדים ומייעל. עם זאת, בתחום שזז במהירות כמו ML, ישנם הרבה פיתוחים חדשים ומעניינים שלא ניתן לשלב אותם בליבת TensorFlow (מכיוון שהישימות הרחבה שלהם עדיין לא ברורה, או שהיא משמשת בעיקר תת-קבוצה קטנה יותר של הקהילה).

הַתקָנָה

מבנים יציבים

כדי להתקין את הגרסה העדכנית ביותר, הפעל את הפעולות הבאות:

pip install tensorflow-addons

כדי להשתמש בתוספים:

import tensorflow as tf
import tensorflow_addons as tfa

מבנים ליליים

יש גם בנייה לילית של תוספות TensorFlow תחת חבילת ה-pip tfa-nightly , אשר בנויה כנגד הגרסה היציבה האחרונה של TensorFlow. בנייה לילית כוללת תכונות חדשות יותר, אך עשויות להיות פחות יציבות מהגרסאות המהדורות.

pip install tfa-nightly

התקנה ממקור

אתה יכול גם להתקין ממקור. זה דורש את מערכת הבנייה של Bazel .

git clone https://github.com/tensorflow/addons.git
cd addons

# If building GPU Ops (Requires CUDA 10.0 and CuDNN 7)
export TF_NEED_CUDA=1
export CUDA_TOOLKIT_PATH="/path/to/cuda10" (default: /usr/local/cuda)
export CUDNN_INSTALL_PATH="/path/to/cudnn" (default: /usr/lib/x86_64-linux-gnu)

# This script links project with TensorFlow dependency
python3 ./configure.py

bazel build build_pip_pkg
bazel-bin/build_pip_pkg artifacts

pip install artifacts/tensorflow_addons-*.whl

מושגי ליבה

API סטנדרטי בתוך חבילות משנה

חווית משתמש ותחזוקה של פרויקטים הם מושגי ליבה ב-TF-Addons. כדי להשיג את אלה אנו דורשים שהתוספות שלנו יתאימו לדפוסי API מבוססים שנראים בליבת TensorFlow.

GPU/CPU Custom-Ops

יתרון עיקרי של תוספות TensorFlow הוא שיש אופציות מהודרות מראש. אם התקנת CUDA 10 לא תימצא אז ההפעלה תיפול אוטומטית למימוש CPU.

תחזוקת פרוקסי

Addons תוכננו לחלק חבילות משנה ותת-מודולים, כך שיוכלו להישמר על ידי משתמשים שיש להם מומחיות ועניין ברכיב זה.

תחזוקה של חבילות משנה תינתן רק לאחר תרומה משמעותית על מנת להגביל את מספר המשתמשים בעלי הרשאת כתיבה. תרומות יכולות לבוא בצורה של סגירת בעיות, תיקוני באגים, תיעוד, קוד חדש או אופטימיזציה של קוד קיים. ניתן להעניק תחזוקה של תת-מודול עם מחסום כניסה נמוך יותר מכיוון שזה לא יכלול הרשאות כתיבה לריפו.

למידע נוסף עיין ב-RFC בנושא זה.

הערכה תקופתית של חבילות משנה

בהתחשב באופי של מאגר זה, חבילות משנה ותת-מודולים עשויים להיות פחות ופחות שימושיים לקהילה ככל שהזמן עובר. על מנת לשמור על המאגר בר-קיימא, אנו נבצע סקירות דו-שנתיות של הקוד שלנו כדי להבטיח שהכל עדיין שייך לריפו. הגורמים התורמים לסקירה זו יהיו:

  1. מספר המתחזקים הפעילים
  2. כמות השימוש ב-OSS
  3. כמות הבעיות או הבאגים המיוחסים לקוד
  4. אם קיים כעת פתרון טוב יותר

ניתן לסווג את הפונקציונליות בתוך TensorFlow Addons לשלוש קבוצות:

  • מוצע : API מתוחזק היטב; השימוש מעודד.
  • מיואש : זמינה חלופה טובה יותר; ה-API נשמר מסיבות היסטוריות; או שה-API דורש תחזוקה והיא תקופת ההמתנה לביטול.
  • הוצא משימוש : השימוש באחריותך בלבד; בכפוף למחיקה.

שינוי הסטטוס בין שלוש הקבוצות הללו הוא: מוצע <-> מיואש -> הוצא משימוש.

התקופה בין סימון ה-API כהוצא משימוש ועד למחיקה תהיה 90 יום. הרציונל הוא:

  1. במקרה שתוספות TensorFlow יוצאות מדי חודש, יהיו 2-3 מהדורות לפני מחיקת API. הערות השחרור יכולות לתת למשתמש מספיק אזהרה.

  2. 90 ימים נותנים למתחילים מספיק זמן לתקן את הקוד שלהם.

תורם

TF-Addons הוא פרויקט קוד פתוח בראשות הקהילה. ככזה, הפרויקט תלוי בתרומות ציבוריות, תיקוני באגים ותיעוד. אנא עיין בהנחיות התרומה לקבלת מדריך כיצד לתרום. פרויקט זה עומד בקוד ההתנהגות של TensorFlow . על ידי השתתפות, אתה צפוי לקיים קוד זה.

קהילה

רִשָׁיוֹן

רישיון אפאצ'י 2.0