tensorflow:: תְחוּם
#include <scope.h>
אובייקט Scope
מייצג קבוצה של TensorFlow פעולות קשורות שיש להם את אותם מאפיינים כמו קידומת שם נפוץ.
תַקצִיר
אובייקט Scope הוא מיכל למאפייני TensorFlow Op. בנאי אופ מקבלים אובייקט Scope כארגומנט ראשון חובה והאופ שנבנה רוכש את המאפיינים באובייקט.
דוגמה פשוטה:
using namespace ops; Scope root = Scope::NewRootScope(); auto c1 = Const(root, { {1, 1} }); auto m = MatMul(root, c1, { {41}, {1} }); GraphDef gdef; Status s = root.ToGraphDef(&gdef); if (!s.ok()) { ... }
היררכיית היקף :
המחלקה Scope מספקת פונקציות שונות With<> היוצרות היקף חדש. בהיקף החדש בדרך כלל מאפיין אחד שונה בעוד שמאפיינים אחרים עוברים בירושה מהיקף האב. השיטה NewSubScope(name) מוסיפה name
לקידומת של שמות עבור ops שנוצרו בתוך ה-scope, ו- WithOpName() משנה את הסיומת שאחרת כברירת מחדל לסוג ה-op.
דוגמאות לשמות:
Scope root = Scope::NewRootScope(); Scope linear = root.NewSubScope("linear"); // W will be named "linear/W" auto W = Variable(linear.WithOpName("W"), {2, 2}, DT_FLOAT); // b will be named "linear/b_3" int idx = 3; auto b = Variable(linear.WithOpName("b_", idx), {2}, DT_FLOAT); auto x = Const(linear, {...}); // name: "linear/Const" auto m = MatMul(linear, x, W); // name: "linear/MatMul" auto r = BiasAdd(linear, m, b); // name: "linear/BiasAdd"
חיי היקף :
היקף חדש נוצר על ידי קריאת Scope::NewRootScope . זה יוצר כמה משאבים המשותפים לכל הטווחים הצאצאים שיורשים מהיקף זה, באופן ישיר או טרנזיטיבי. לדוגמה, היקף חדש יוצר אובייקט Graph חדש שאליו מתווספות פעולות כאשר ה-scope החדש או הילדים שלו נמצאים בשימוש על ידי בנאי Op. ל-scope החדש יש גם אובייקט Status אשר ישמש לציון שגיאות על-ידי פונקציות Op-constructor הנקראות בכל טווח ילד. פונקציות ה-Op-constructor צריכות לבדוק את מצב ה-scope על ידי קריאה למתודה ok() לפני המשך בניית ה-op.
בטיחות חוטים:
אובייקט Scope
אינו בטוח לחוט. שרשורים אינם יכולים לקרוא בו-זמנית לפונקציות בונה אופ על אותו אובייקט Scope
.
בנאים והורסים | |
---|---|
Scope (const Scope & other) | |
~Scope () |
תפקידים ציבוריים | |
---|---|
ClearColocation () const | נקה את כל אילוצי ה-colocation. |
ColocateWith (const Operation & op) const | החזר היקף חדש. |
ColocateWith (const Output & out) const | פונקציית נוחות לעיל. |
ExitOnError () const | החזר היקף חדש. |
GetCompositeOpScopes (const string & composite_op_name) const | |
GetUniqueNameForOp (const string & default_name) const | string החזר שם ייחודי באמצעות default_name אם לא צוין שם הפעלה. |
NewSubScope (const string & child_scope_name) const | החזר היקף חדש. |
ToGraphDef (GraphDef *gdef) const | Status אם הסטטוס() הוא Status::OK(), המר את אובייקט ה-Graph המאוחסן בהיקף זה לפרוטו של GraphDef והחזר את Status::OK(). |
UpdateStatus (const Status & s) const | void עדכן את הסטטוס בהיקף זה. |
WithAssignedDevice (const string & assigned_device) const | מחזירה היקף חדש. |
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const | החזר היקף חדש. |
WithControlDependencies (const Output & control_dep) const | זהה לעיל, אבל נוח להוסיף תלות בקרה בפעולה המפיקה את הפלט control_dep. |
WithDevice (const string & device) const | החזר היקף חדש. |
WithKernelLabel (const string & kernel_label) const | החזר היקף חדש. |
WithNoControlDependencies () const | החזר היקף חדש. |
WithOpName (Ty... fragments) const | החזר היקף חדש. |
WithXlaCluster (const string & xla_cluster) const | מחזירה היקף חדש. |
control_deps () const | const std::vector< Operation > & |
graph () const | Graph * |
graph_as_shared_ptr () const | std::shared_ptr< Graph > |
ok () const | bool |
operator= (const Scope & other) | Scope & |
status () const | Status |
פונקציות סטטיות ציבוריות | |
---|---|
NewRootScope () | החזר היקף חדש. |
תפקידים ציבוריים
ColocateWith
Scope ColocateWith( const Operation & op ) const
החזר היקף חדש.
כל המבצעים שנוצרו בטווח המוחזר ימוקמו במשותף במכשיר שבו ממוקמת האופ. הערה: פונקציה זו מיועדת לשימוש בספריות פנימיות רק לשליטה במיקום של פעולות במכשירים. השימוש הציבורי אינו מעודד מכיוון שהיישום של מיקום המכשיר נתון לשינויים.
ExitOnError
Scope ExitOnError() const
החזר היקף חדש.
פונקציות ה-op-constructor לוקחות את ה-scope שהוחזר כארגומנט ה-scope ייצאו ברגע שתזוהה שגיאה, במקום להגדיר את המצב ב-scope.
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
GetUniqueNameForOp
string GetUniqueNameForOp( const string & default_name ) const
החזר שם ייחודי באמצעות default_name אם לא צוין שם הפעלה.
NewSubScope
Scope NewSubScope( const string & child_scope_name ) const
החזר היקף חדש.
אופציות שנוצרו עם scope זה יהיו עם name/child_scope_name
בתור הקידומת. השם בפועל יהיה ייחודי בהיקף הנוכחי. כל שאר המאפיינים עוברים בירושה מההיקף הנוכחי. אם child_scope_name
ריק, ה- /
נמחק.
תְחוּם
Scope( const Scope & other )
ToGraphDef
Status ToGraphDef( GraphDef *gdef ) const
אם הסטטוס() הוא Status::OK(), המר את אובייקט ה-Graph המאוחסן בהיקף זה לפרוטו של GraphDef והחזר את Status::OK().
אחרת, החזר את מצב השגיאה כפי שהוא מבלי לבצע המרת GraphDef.
עדכון סטטוס
void UpdateStatus( const Status & s ) const
עדכן את הסטטוס בהיקף זה.
הערה: אובייקט הסטטוס משותף בין כל הילדים בהיקף זה. אם המצב המתקבל הוא לא Status::OK() ו-exit_on_error_ מוגדר בהיקף זה, פונקציה זו יוצאת על ידי קריאה ל-LOG(FATAL).
WithAssignedDevice
Scope WithAssignedDevice( const string & assigned_device ) const
מחזירה היקף חדש.
כל המבצעים שנוצרו בטווח המוחזר יוגדרו להתקן שהוקצה להם ל- assigned_device
.
WithControlDependencies
Scope WithControlDependencies( const gtl::ArraySlice< Operation > & control_deps ) const
החזר היקף חדש.
לכל האופציות שנוצרו במסגרת ה-scope המוחזר יהיו כתלות בקרה את איחוד הפעולות בווקטור control_deps ואת תלות הבקרה של ה-scope הנוכחי.
WithControlDependencies
Scope WithControlDependencies( const Output & control_dep ) const
זהה לעיל, אבל נוח להוסיף תלות בקרה בפעולה המפיקה את הפלט control_dep.
WithDevice
Scope WithDevice( const string & device ) const
החזר היקף חדש.
כל המבצעים שנוצרו בטווח המוחזר יוגדרו בשדה ההתקן ל-'device'.
WithKernelLabel
Scope WithKernelLabel( const string & kernel_label ) const
החזר היקף חדש.
כל האופציות שנוצרו עם ה-scope החדש יהיו עם kernel_label כערך עבור התכונה '_kernel' שלהם;
WithNoControlDependencies
Scope WithNoControlDependencies() const
החזר היקף חדש.
לכל האופציות שנוצרו בטווח המוחזר לא תהיה תלות בקרה בפעולות אחרות.
WithOpName
Scope WithOpName( Ty... fragments ) const
החזר היקף חדש.
לכל האופציות שנוצרו בטווח המוחזר יהיו שמות של הטופס name/StrCat(fragments...)[_suffix]
עם XlaCluster
Scope WithXlaCluster( const string & xla_cluster ) const
מחזירה היקף חדש.
תכונת _XlaCluster שלהם מוגדרת כ- xla_cluster
לכל האופציות שנוצרו בטווח המוחזר.
control_deps
const std::vector< Operation > & control_deps() const
גרָף
Graph * graph() const
graph_as_shared_ptr
std::shared_ptr< Graph > graph_as_shared_ptr() const
בְּסֵדֶר
bool ok() const
מפעיל=
Scope & operator=( const Scope & other )
סטָטוּס
Status status() const
~ היקף
~Scope()
פונקציות סטטיות ציבוריות
NewRootScope
Scope NewRootScope()
החזר היקף חדש.
זה יוצר גרף חדש וכל הפעולות שנבנות בגרף זה צריכות להשתמש באובייקט המוחזר בתור היקף ה"שורש".
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-09-10 (שעון UTC).