Einsum

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

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

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

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

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

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

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

(ב) הפחתה: צירים התואמים לתוויות המופיעות רק בכתובת קלט אחת אך לא בכתב המשנה הפלט מסוכמים לפני התכווצות Tensor. לדוגמה, במשוואה `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.

קבועים

חוּט OP_NAME השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow

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

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

שיטות בירושה

קבועים

מחרוזת סופית סטטית ציבורית OP_NAME

השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow

ערך קבוע: "Einsum"

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

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

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

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

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

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

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

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

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