עזרה להגן על שונית המחסום הגדולה עם TensorFlow על Kaggle הצטרפו אתגר

זרימת טנסור :: תְחוּם

#include <scope.h>

אובייקט Scope מייצג קבוצה של אופציות קשורות של TensorFlow בעלות אותם מאפיינים כמו קידומת שם נפוצה.

סיכום

אובייקט Scope הוא מיכל למאפייני TensorFlow 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 מספקת פונקציות שונות עם <> היוצרות היקף חדש. ההיקף החדש בדרך כלל השתנה מאפיין אחד ואילו מאפיינים אחרים עוברים בירושה מההיקף האב. שיטת NewSubScope (שם) מוסיפה name לקידומת השמות עבור אופ שנוצרו בתחום, ו- WithOpName () משנה את הסיומת אשר אחרת היא ברירת מחדל לסוג האופ.

דוגמאות לשם:

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"

חיי היקף :

היקף חדש נוצר על ידי קריאה לסקופ :: NewRootScope . זה יוצר כמה משאבים המשותפים לכל היקפי הילדים שעוברים בירושה מהיקף זה, באופן ישיר או מעברי. לדוגמא, היקף חדש יוצר אובייקט גרף חדש אליו מתווספות פעולות כאשר הטווח החדש או ילדיו משמשים על ידי קונסטרוקטור Op. להיקף החדש יש גם אובייקט סטטוס שישמש לציון שגיאות על ידי פונקציות Op-constructor הנקראות בכל היקף ילדים. על פונקציות ה- Op-constructor לבדוק את מצב ההיקף על ידי קריאה לשיטת ok () לפני שתמשיך לבנות את ה- op.

בטיחות חוט:

אובייקט Scope אינו בטיחות הברגה. האשכולות לא יכולות להתקשר לפונקציות בונה-אופ באותו אובייקט 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 אם לא צוין שם op.
NewSubScope (const string & child_scope_name) const
החזר היקף חדש.
ToGraphDef (GraphDef *gdef) const
Status
אם סטטוס () הוא סטטוס :: בסדר (), המירו את אובייקט הגרף המאוחסן בהיקף זה לפרוטו של GraphDef והחזירו סטטוס :: אישור ().
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)
status () const
Status

פונקציות סטטיות ציבוריות

NewRootScope ()
החזר היקף חדש.

פונקציות ציבוריות

ClearColocation

Scope ClearColocation() const 

נקה את כל אילוצי הקולוקציה.

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

החזר היקף חדש.

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

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

פונקציית נוחות לעיל.

ExitOnError

Scope ExitOnError() const 

החזר היקף חדש.

פונקציונליות ה- op-constructor תופסת את ההיקף שהוחזר מכיוון שארגומנט ה- scope ייצא ברגע שמתגלה שגיאה, במקום לקבוע את הסטטוס על ה- scope.

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

החזר שם ייחודי, תוך שימוש ב default_name אם לא צוין שם op.

NewSubScope

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 

אם סטטוס () הוא סטטוס :: בסדר (), המירו את אובייקט הגרף המאוחסן בהיקף זה לפרוטו של גרפד והחזירו סטטוס :: אישור ().

אחרת, החזר את מצב השגיאה כפי שהוא מבלי לבצע המרת GraphDef.

עדכן מצב

void UpdateStatus(
  const Status & s
) const 

עדכן את הסטטוס בהיקף זה.

הערה: אובייקט הסטטוס משותף בין כל הילדים בהיקף זה. אם הסטטוס המתקבל אינו סטטוס :: בסדר () ו- exit_on_error_ מוגדר בהיקף זה, פונקציה זו תצא על ידי קריאה ל- LOG (FATAL).

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

מחזיר היקף חדש.

לכל האופציות שנוצרו במסגרת המוחזר יוגדר המכשיר assigned_device להם assigned_device .

WithControlDependences

Scope WithControlDependencies(
  const gtl::ArraySlice< Operation > & control_deps
) const 

החזר היקף חדש.

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

WithControlDependences

Scope WithControlDependencies(
  const Output & control_dep
) const 

זהה לעיל, אך נוח להוסיף תלות בקרה בפעולה המייצרת את הפלט control_dep.

WithDevice

Scope WithDevice(
  const string & device
) const 

החזר היקף חדש.

כל האופציות שנוצרו במסגרת המוחזר יוגדרו בשדה המכשיר ל'מכשיר '.

WithKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

החזר היקף חדש.

לכל האופציות שנוצרו עם ההיקף החדש יהיה kernel_label כערך עבור התכונה '_kernel' שלהם;

WithNoControlDependences

Scope WithNoControlDependencies() const 

החזר היקף חדש.

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

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

החזר היקף חדש.

לכל האופציות שנוצרו במסגרת המוחזרת יופיעו שמות של name/StrCat(fragments...)[_suffix] הטופס name/StrCat(fragments...)[_suffix]

WithXlaCluster

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()

החזר היקף חדש.

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