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
applicationControlDependencies (בונה OperationBuilder )
מוסיף כל אופרנד ב-controlDependencies כקלט בקרה לבונה המסופק.
ביצוע סביבה
env ()
מחזירה את סביבת הביצוע המשמשת את ההיקף הזה.
חוּט
makeOpName (מחרוזת defaultName)
צור שם ייחודי לאופרטור, תוך שימוש בברירת המחדל שסופקה במידת הצורך.
תְחוּם
withControlDependencies (בקרות ניתנות לחזרה< Operand <?>>)
מחזירה היקף חדש שבו לפעולות שנוספו יהיו תלות הבקרה שסופקו.
תְחוּם
withName (מחרוזת opName)
החזר היקף חדש המשתמש בשם שצוין עבור אופציה.
תְחוּם
withSubScope (מחרוזת childScopeName)
מחזירה היקף חדש שבו פעולות שנוספו יקבלו את קידומת השם שסופקה.

שיטות בירושה

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

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

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

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

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

Public OperationBuilder applyControlDependencies (בונה OperationBuilder )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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