זרימת טנזור:: היקף
#include <scope.h> אובייקט Scope מייצג קבוצה של פעולות TensorFlow קשורות בעלות אותן מאפיינים, כגון קידומת שם משותף.
תַקצִיר
אובייקט Scope הוא מכל עבור מאפייני TensorFlow Op. בנאי Op מקבלים אובייקט Scope כארגומנט ראשון חובה וה-op שנבנה רוכש את המאפיינים באובייקט.
דוגמה פשוטה:
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<> שיוצרות scope חדש. בscope החדש בדרך כלל מאפיין אחד משתנה בעוד שמאפיינים אחרים עוברים בירושה מהscope האב. המתודה NewSubScope(name) מוסיפה name לקידומת של שמות עבור פעולות שנוצרו בתוך ה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 חדש שאליו מתווספות פעולות כאשר ההיקף החדש או ילדיו נמצאים בשימוש על ידי בנאי Op. להיקף החדש יש גם אובייקט Status שישמש לציון שגיאות על ידי פונקציות בנאי Op הנקראות על כל היקף צאצא. פונקציות בנאי Op צריכות לבדוק את מצב ההיקף על ידי קריאה למתודה ok() לפני שתמשיך לבניית ה-op.
בטיחות חוטים:
אובייקט Scope אינו בטוח בפני threads. Threads אינם יכולים לקרוא בו זמנית לפונקציות של בנאי op על אותו אובייקט Scope .
בנאים והורסים | |
|---|---|
Scope (const Scope & other) | |
~Scope () |
תפקידים ציבוריים | |
|---|---|
ClearColocation () const | נקה את כל מגבלות המיקום המשותף. |
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 לפעולה שמייצרת את הפלט 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 | |
פונקציות סטטיות ציבוריות | |
|---|---|
NewRootScope () | החזר היקף חדש. |
תפקידים ציבוריים
מיקום עם
Scope ColocateWith( const Operation & op ) const
החזר היקף חדש.
כל הפעולות שנוצרו בתוך ההיקף המוחזר ימוקמו יחד במכשיר שבו מוצב הפעולות. הערה: פונקציה זו מיועדת לשימוש בספריות פנימיות בלבד לצורך שליטה במיקום פעולות על גבי מכשירים. שימוש ציבורי אינו מומלץ מכיוון שהטמעה של מיקום מכשירים כפופה לשינויים.
יציאהבשגיאה
Scope ExitOnError() const
החזר היקף חדש.
פונקציות של בנאי op המקבלות את ה-scope המוחזר כארגומנט scope ייסגרו ברגע שתתגלה שגיאה, במקום להגדיר את הסטטוס על ה-scope.
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
קבל שם ייחודי עבור פעולה
string GetUniqueNameForOp( const string & default_name ) const
החזר שם ייחודי, תוך שימוש ב-default_name אם לא צוין שם פעולה.
סאב-סקופ חדש
Scope NewSubScope( const string & child_scope_name ) const
החזר היקף חדש.
פעולות שנוצרו עם סקופ זה יקבלו את הקידומת name/child_scope_name . השם בפועל יהיה ייחודי בסקופ הנוכחי. כל שאר המאפיינים עוברים בירושה מהסקופ הנוכחי. אם child_scope_name ריק, הסימן / נמחק.
תְחוּם
Scope( const Scope & other )
ToGraphDef
Status ToGraphDef( GraphDef *gdef ) const
אם status() הוא Status::OK(), יש להמיר את אובייקט Graph המאוחסן בסקופ זה לפרוטוקול GraphDef ולהחזיר את Status::OK().
אחרת, יש להחזיר את סטטוס השגיאה כפי שהוא מבלי לבצע המרת GraphDef.
סטטוס עדכון
void UpdateStatus( const Status s ) const
עדכון הסטטוס בהיקף זה.
הערה: אובייקט ה-status משותף לכל הילדים של תחום זה. אם ה-status המתקבל אינו Status::OK() ו-exit_on_error_ מוגדר בתחום זה, פונקציה זו מסתיימת על ידי קריאה ל-LOG(FATAL).
עם מכשיר שהוקצה
Scope WithAssignedDevice( const string & assigned_device ) const
מחזירה היקף חדש.
כל הפעולות שנוצרו בתוך ההיקף המוחזר יקבלו את ההתקן שהוקצה להם כ- assigned_device .
תלויות עם שליטה
Scope WithControlDependencies( const gtl::ArraySlice< Operation > & control_deps ) const
החזר היקף חדש.
כל הפעולות שנוצרו בתוך ההיקף המוחזר יהיו תלויות בקרה את איחוד הפעולות בוקטור control_deps ותלויות הבקרה של ההיקף הנוכחי.
תלויות עם שליטה
Scope WithControlDependencies( const Output & control_dep ) const
זהה לקודם, אבל נוח להוסיף תלות control לפעולה שמייצרת את הפלט control_dep.
עם התקן
Scope WithDevice( const string & device ) const
החזר היקף חדש.
כל הפעולות שנוצרו בתוך ההיקף המוחזר כוללות את שדה המכשיר המוגדר כ-'device'.
עם תווית ליבה
Scope WithKernelLabel( const string & kernel_label ) const
החזר היקף חדש.
כל הפעולות שנוצרו עם הסקופ החדש יקבלו את הערך kernel_label עבור התכונה '_kernel' שלהם;
תלויות ללא שליטה
Scope WithNoControlDependencies() const
החזר היקף חדש.
לכל הפעולות שנוצרו בתוך ההיקף המוחזר לא יהיו תלויות בקרה על פעולות אחרות.
עם שם פעולה
Scope WithOpName( Ty... fragments ) const
החזר היקף חדש.
כל הפעולות שנוצרו בתוך התחום המוחזר יהיו בעלות שמות בצורה name/StrCat(fragments...)[_suffix]
עם אשכולXla
Scope WithXlaCluster( const string & xla_cluster ) const
מחזירה היקף חדש.
כל הפעולות שנוצרו בתוך ההיקף המוחזר יקבלו את התכונה _XlaCluster שלהן מוגדרת ל- xla_cluster .
control_deps
const std::vector< Operation > & control_deps() const
גרָף
Graph * graph() const
גרף_כפי_שתוף_ptr
std::shared_ptr< Graph > graph_as_shared_ptr() const
בְּסֵדֶר
bool ok() const
אופרטור=
Scope & operator=( const Scope & other )
סטָטוּס
Status status() const
~היקף
~Scope()
פונקציות סטטיות ציבוריות
ניורוטסקופ
Scope NewRootScope()
החזר היקף חדש.
פעולה זו יוצרת גרף חדש וכל הפעולות שנבנו בגרף זה צריכות להשתמש באובייקט המוחזר כטווח "שורש".
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-11-05 (שעון UTC).