אזהרה: API זו ברמה נמוכה יוסרה בגרסה עתידית של TensorFlow לאחר ההחלפה יציבה.

Einsum

שיעור הגמר הציבורי Einsum

התכווצות טנזור לפי מוסכמת סיכום איינשטיין.

מיישמת התכווצות והפחתה של טנסור כללית. לכל Tensor קלט חייב להיות סקריפט קלט מתאים המופיע בצד השמאלי המופרד בפסיקים של המשוואה. הצד הימני של המשוואה מורכב מתתי הפלט. תתי הקלט וכתב המשנה של הפלט צריכים להיות מורכבים מתוויות ציר בשמות אפס או יותר ולכל היותר אליפסה אחת (`...`).

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

הערה: אופ זה אינו מיועד להיקרא על ידי המשתמש; במקום זאת על המשתמשים להתקשר ישירות tf.einsum . זהו אופ נסתר המשמש tf.einsum .

פעולות מוחלות על הקלט/ים בהתאם לכללים הבאים:

(א) אלכסונים מוכללים: עבור ממדי קלט התואמים לתוויות ציר המופיעות יותר מפעם אחת באותו כתב קלט, ניקח את האלכסון המוכלל (ממדי `k'). לדוגמה, במשוואה `iii->i` עם צורת הקלט `[3, 3, 3]`, האלכסון המוכלל יהיה מורכב מ`3` אלמנטים באינדקס `(0, 0, 0)`, `(1) , 1, 1)` ו-`(2, 2, 2)` כדי ליצור טנסור של צורה `[3]`.

(ב) הפחתה: צירים התואמים לתוויות המופיעות רק בכתובת קלט אחת אך לא בכתב המשנה הפלט מסוכמים לפני התכווצות הטנסור. לדוגמה, במשוואה `ab,bc->b`, תוויות הציר `a` ו-`c` הן תוויות ציר ההפחתה.

(ג) מימדי אצווה: צירים התואמים לתוויות המופיעות בכל אחד מהרשומות הקלט וגם בכתב המשנה של הפלט מרכיבים את מידות האצווה בהתכווצות Tensor. תוויות ציר ללא שם התואמות לאליפסיס (`...`) מתאימות גם לממדים של אצווה. לדוגמה, עבור המשוואה המציינת כפל מטריצת אצווה, `bij,bjk->bik`, תווית הציר `b` מתאימה לממד אצווה.

(ד) התכווצות: במקרה של einsum בינארי, צירים התואמים לתוויות המופיעות בשתי כניסות שונות (ולא בפלט) מכווצים זה מול זה. בהתחשב שוב במשוואת הכפל של מטריצת האצווה (`bij,bjk->bik`), תווית הציר המכווץ היא `j`.

(ה) הרחב אלכסון: אם תווי הפלט מכילים תוויות ציר חוזרות (מפורשות), הפעולה ההפוכה של (a) מופעלת. לדוגמה, במשוואה `i->iii`, ובצורת הקלט `[3]`, הפלט של צורה `[3, 3, 3]` הם כולם אפסים, מלבד האלכסון (המוכלל) שמאוכלס עם ערכים מהקלט. הערה: פעולה זו אינה נתמכת על ידי `np.einsum` או tf.einsum ; הוא מסופק כדי לאפשר לחשב את הגרדיאנט הסמלי של tf.einsum .

כתוביות הפלט חייבות להכיל רק תוויות המופיעות לפחות באחד מכתוביות הקלט. יתר על כן, כל הממדים המיפויים לאותה תווית ציר חייבים להיות שווים.

כל אחד מכתובות הקלט והפלט עשוי להכיל לכל היותר אליפסיס בודד (`...`). אליפסות אלו ממפות כנגד מידות שאינן תואמות לתווית ציר עם שם. אם שתי כניסות מכילות אליפסיס, הן משודרות לפי [כללים] סטנדרטיים של NumPy שידור (http://docs.scipy.org/doc/numpy/user/basics.broadcasting.html).

הממדים המשודרים ממוקמים במיקום המתאים של האליפסיס בכתב המשנה של הפלט. אם הממדים המשודרים אינם ריקים וכתובות המשנה של הפלט אינם מכילים אליפסיס, מועלית שגיאת InvalidArgument.

שיטות ציבוריות

פלט <T>
asOutput ()
מחזירה את הידית הסמלית של טנזור.
סטטי <T> Einsum <T>
צור ( היקף היקף, כניסות איטריות < Operand <T>>, משוואת מחרוזת)
שיטת מפעל ליצירת מחלקה העוטפת פעולת Einsum חדשה.
פלט <T>
פלט ()
פלט טנסור עם צורה בהתאם למשוואה.

שיטות בירושה

שיטות ציבוריות

פלט ציבורי <T> asOutput ()

מחזירה את הידית הסמלית של טנזור.

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

סטטי ציבורי Einsum <T> create ( היקף היקף, כניסות איטריות < Operand <T>>, משוואת מחרוזת)

שיטת מפעל ליצירת מחלקה העוטפת פעולת Einsum חדשה.

פרמטרים
תְחוּם ההיקף הנוכחי
תשומות רשימה של 1 או 2 טנסורים.
משוואה מחרוזת המתארת ​​את פעולת סיכום איינשטיין; בפורמט של np.einsum.
החזרות
  • מופע חדש של איינסום

פלט ציבורי <T> פלט ()

פלט טנסור עם צורה בהתאם למשוואה.