Scope

שיעור הגמר הציבורי היקף

מנהל קבוצות של מאפיינים קשורים בעת יצירת Tensorflow Operations, כגון קידומת שם נפוץ.

A Scope הוא מיכל למאפיינים נפוצים המיושמים על TensorFlow Ops. קוד משתמש רגיל מאתחל Scope ומספק אותו למחלקות של בניית Operation. לדוגמה:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

מחלקה לבניית פעולות רוכשת Scope, ומשתמשת בו כדי להגדיר מאפיינים באופציות הבסיסיות של Tensorflow. לדוגמה:

// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   
 }
 }

היררכיית היקף:

A Scope מספק שיטות with() שונות שיוצרות היקף חדש. בהיקף החדש בדרך כלל מאפיין אחד שונה בעוד שמאפיינים אחרים עוברים בירושה מהיקף האב.

דוגמה באמצעות Constant מיושם כמו קודם:

Scope root = new Scope(graph);

 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");

 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);

 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);

 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 

חפצי היקף אינם בטוחים בחוט.

בונים ציבוריים

היקף (סביבה ExecutionEnvironment )
צור היקף חדש ברמה העליונה.

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

OperationBuilder
החל (בונה OperationBuilder )
מחיל מפרט מכשיר ומוסיף כל Operand ב-controlDependencies כקלט בקרה לבונה המסופק.
OperationBuilder
applicationControlDependencies (בונה OperationBuilder )
מוסיף כל אופרנד ב-controlDependencies כקלט בקרה לבונה המסופק.
ביצוע סביבה
env ()
מחזירה את סביבת הביצוע המשמשת את ההיקף הזה.
חוּט
getDeviceString ()
מחזיר מחרוזת מכשיר מההיקף.
חוּט
makeOpName (מחרוזת defaultName)
צור שם ייחודי לאופרטור, תוך שימוש בברירת המחדל שסופקה במידת הצורך.
תְחוּם
withControlDependencies (Iterable< Op > פקדים)
מחזירה היקף חדש שבו לפעולות שנוספו יהיו תלות הבקרה שסופקו.
תְחוּם
withDevice ( DeviceSpec deviceSpec)
החזר היקף חדש המשתמש במפרט המכשיר שסופק עבור הפעלה.
תְחוּם
withName (מחרוזת opName)
החזר היקף חדש המשתמש בשם שצוין עבור אופציה.
תְחוּם
withNameAsSubScope (מחרוזת defaultName)
מחזירה היקף חדש שבו פעולות שנוספו יקדמו את שם הפעולה של ההיקף הזה (מוגדר על ידי withName(String) ), או ברירת המחדל הנתונה אם היא לא מוגדרת.
תְחוּם
withSubScope (מחרוזת childScopeName)
מחזירה היקף חדש שבו פעולות שנוספו יקבלו את קידומת השם שסופקה.

שיטות בירושה

בונים ציבוריים

היקף ציבורי (סביבה ExecutionEnvironment )

צור היקף חדש ברמה העליונה.

פרמטרים
env סביבת הביצוע המשמשת את ה-scope.

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

בונה Operation Builder ציבורי (בונה OperationBuilder )

מחיל מפרט מכשיר ומוסיף כל Operand ב-controlDependencies כקלט בקרה לבונה המסופק.

פרמטרים
בּוֹנֶה OperationBuilder להוספת כניסות בקרה ומפרט מכשיר

Public OperationBuilder applyControlDependencies (בונה OperationBuilder )

מוסיף כל אופרנד ב-controlDependencies כקלט בקרה לבונה המסופק.

פרמטרים
בּוֹנֶה OperationBuilder להוספת תשומות בקרה

סביבה ציבורית ExecutionEnvironment ()

מחזירה את סביבת הביצוע המשמשת את ההיקף הזה.

מחרוזת ציבורית getDeviceString ()

מחזיר מחרוזת מכשיר מההיקף.

מחרוזת ציבורית makeOpName (מחרוזת defaultName)

צור שם ייחודי לאופרטור, תוך שימוש בברירת המחדל שסופקה במידת הצורך.

זה נקרא בדרך כלל רק על ידי כיתות בניית מפעיל.

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

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

הערה: אם אתה מספק מחלקה מורכבת לבניית מפעיל (כלומר, מחלקה שיוצרת קבוצה של פעולות קשורות על ידי קריאה לקוד בנייה של מפעיל אחר), השם שסופק ישמש כתת-היקף לכל המפעילים הבסיסיים.

פרמטרים
defaultName שם לאופרטור הבסיסי.
החזרות
  • שם ייחודי למפעיל.
זורק
חריג טיעון לא חוקי אם שם ברירת המחדל אינו חוקי.

היקף ציבורי עם תלות בקרה (בקרות שניתן לבצע <Op> )

מחזירה היקף חדש שבו לפעולות שנוספו יהיו תלות הבקרה שסופקו.

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

פרמטרים
בקרות שליטה בתלות עבור פעולות שנוצרו עם ההיקף המוחזר
החזרות
  • היקף חדש עם תלות הבקרה שסופקה

היקף ציבורי עם התקן ( DeviceSpec deviceSpec)

החזר היקף חדש המשתמש במפרט המכשיר שסופק עבור הפעלה.

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

פרמטרים
מפרט המכשיר מפרט מכשיר למפעיל בהיקף המוחזר
החזרות
  • Scope חדש המשתמש ב-opName עבור פעולות.

היקף ציבורי עם שם (מחרוזת opName)

החזר היקף חדש המשתמש בשם שצוין עבור אופציה.

לפעולות שנוצרו בהיקף זה יהיה שם של הטופס name/opName[_suffix] . זה מאפשר לך לתת שם לאופרטור ספציפי בצורה משמעותית יותר.

השמות חייבים להתאים לביטוי הרגולרי [A-Za-z0-9.][A-Za-z0-9_.\-]*

פרמטרים
opName שם לאופרטור בהיקף המוחזר
החזרות
  • Scope חדש המשתמש ב-opName עבור פעולות.
זורק
חריג טיעון לא חוקי אם השם לא חוקי

Public Scope withNameAsSubScope (מחרוזת ברירת מחדל שם)

מחזירה היקף חדש שבו פעולות שנוספו יקדמו את שם הפעולה של ההיקף הזה (מוגדר על ידי withName(String) ), או ברירת המחדל הנתונה אם היא לא מוגדרת. זה נועד לשמש עבור פעולות מורכבות.

מבצעים שנוצרו עם היקף זה יהיו עם name/opName/ בתור הקידומת. השם בפועל יהיה ייחודי בהיקף המוחזר. כל שאר המאפיינים עוברים בירושה מההיקף הנוכחי.

שם ברירת המחדל של טווח הצאצא חייב להתאים לביטוי הרגולרי [A-Za-z0-9.][A-Za-z0-9_.\-]*

פרמטרים
defaultName שם ההיקף המשנה אם שם ההיקף הזה לא הוגדר.
החזרות
  • תת-היקף חדש
זורק
חריג טיעון לא חוקי אם השם לא חוקי

Public Scope withSubScope (מחרוזת childScopeName)

מחזירה היקף חדש שבו פעולות שנוספו יקבלו את קידומת השם שסופקה.

אופציות שנוצרו עם היקף זה יהיו עם name/childScopeName/ בתור הקידומת. השם בפועל יהיה ייחודי בהיקף המוחזר. כל שאר המאפיינים עוברים בירושה מההיקף הנוכחי.

שם הטווח הצאצא חייב להתאים לביטוי הרגולרי [A-Za-z0-9.][A-Za-z0-9_.\-]*

פרמטרים
childScopeName שם עבור היקף הילד החדש
החזרות
  • תת-היקף חדש
זורק
חריג טיעון לא חוקי אם השם לא חוקי