เทนเซอร์โฟลว์ :: ขอบเขต

#include <scope.h>

วัตถุ Scope แสดงถึงชุดของหน่วยปฏิบัติการ TensorFlow ที่เกี่ยวข้องซึ่งมีคุณสมบัติเหมือนกันเช่นคำนำหน้าชื่อทั่วไป

สรุป

วัตถุ ขอบเขต คือคอนเทนเนอร์สำหรับคุณสมบัติ TensorFlow Op ตัวสร้าง Op ได้รับวัตถุ ขอบเขต เป็นอาร์กิวเมนต์แรกที่จำเป็นและตัวสร้าง 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) วิธีการต่อท้าย name กับคำนำหน้าของชื่อสำหรับ ops ที่สร้างขึ้นภายในขอบเขตและ 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 สิ่งนี้จะสร้างทรัพยากรบางอย่างที่ใช้ร่วมกันโดยขอบเขตลูกทั้งหมดที่สืบทอดมาจากขอบเขตนี้โดยตรงหรือโดยสกรรมกริยา ตัวอย่างเช่นขอบเขตใหม่จะสร้างออบเจ็กต์กราฟใหม่ซึ่งการดำเนินการจะถูกเพิ่มเมื่อตัวสร้าง Op ใช้ขอบเขตใหม่หรือลูกของขอบเขต ขอบเขตใหม่ยังมีออบเจ็กต์ สถานะ ซึ่งจะใช้เพื่อระบุข้อผิดพลาดโดยฟังก์ชัน Op-constructor ที่เรียกใช้ในขอบเขตลูกใด ๆ ฟังก์ชัน Op-constructor ต้องตรวจสอบสถานะของขอบเขตโดยเรียกใช้เมธอด ok () ก่อนที่จะดำเนินการสร้าง op

ความปลอดภัยของด้าย:

วัตถุ Scope ไม่ปลอดภัยต่อเธรด เธรดไม่สามารถเรียกใช้ฟังก์ชัน op-constructor พร้อมกันบนวัตถุ 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 () คือ 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)
status () const

ฟังก์ชั่นคงที่สาธารณะ

NewRootScope ()
ส่งคืนขอบเขตใหม่

หน้าที่สาธารณะ

ClearColocation

Scope ClearColocation() const 

ล้างข้อ จำกัด โคโลเคชั่นทั้งหมด

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

ส่งคืนขอบเขตใหม่

การดำเนินการทั้งหมดที่สร้างขึ้นภายในขอบเขตที่ส่งคืนจะอยู่ร่วมกันบนอุปกรณ์ที่วาง op ไว้ หมายเหตุ: ฟังก์ชั่นนี้มีไว้เพื่อใช้ในไลบรารีภายในสำหรับการควบคุมการจัดวางอุปกรณ์ต่างๆ ไม่สนับสนุนให้ใช้งานสาธารณะเนื่องจากการใช้งานตำแหน่งอุปกรณ์อาจมีการเปลี่ยนแปลง

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

ฟังก์ชั่นอำนวยความสะดวกสำหรับด้านบน

ExitOnError

Scope ExitOnError() const 

ส่งคืนขอบเขตใหม่

ฟังก์ชัน op-constructor รับขอบเขตที่ส่งคืนเนื่องจากอาร์กิวเมนต์ขอบเขตจะออกทันทีที่ตรวจพบข้อผิดพลาดแทนที่จะตั้งค่าสถานะบนขอบเขต

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 

ส่งคืนขอบเขตใหม่

Ops ที่สร้างด้วยขอบเขตนี้จะมี 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

UpdateStatus

void UpdateStatus(
  const Status & s
) const 

อัปเดตสถานะในขอบเขตนี้

หมายเหตุ: ออบเจ็กต์สถานะจะแบ่งใช้ระหว่างชายด์ทั้งหมดของขอบเขตนี้ หากสถานะผลลัพธ์ไม่ใช่ Status :: OK () และ exit_on_error_ ถูกตั้งค่าในขอบเขตนี้ฟังก์ชันนี้จะออกโดยการเรียก LOG (FATAL)

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

ส่งคืนขอบเขตใหม่

การดำเนินการทั้งหมดที่สร้างขึ้นภายในขอบเขตที่ส่งคืนจะมีการกำหนดอุปกรณ์ที่กำหนดไว้เป็น assigned_device

ด้วยControlDependencies

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

ส่งคืนขอบเขตใหม่

การดำเนินการทั้งหมดที่สร้างขึ้นภายในขอบเขตที่ส่งคืนจะมีการพึ่งพาการควบคุมการรวมกันของการดำเนินการในเวกเตอร์ control_deps และการอ้างอิงการควบคุมของขอบเขตปัจจุบัน

ด้วยControlDependencies

Scope WithControlDependencies(
  const Output & control_dep
) const 

เหมือนกับข้างบน แต่สะดวกในการเพิ่มการพึ่งพาการควบคุมในการดำเนินการที่สร้างเอาต์พุต control_dep

ด้วยอุปกรณ์

Scope WithDevice(
  const string & device
) const 

ส่งคืนขอบเขตใหม่

การดำเนินการทั้งหมดที่สร้างขึ้นภายในขอบเขตที่ส่งคืนจะมีการตั้งค่าฟิลด์อุปกรณ์เป็น "อุปกรณ์"

ด้วย KernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

ส่งคืนขอบเขตใหม่

การดำเนินการทั้งหมดที่สร้างขึ้นด้วยขอบเขตใหม่จะมี 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()

ส่งคืนขอบเขตใหม่

สิ่งนี้จะสร้างกราฟใหม่และการดำเนินการทั้งหมดที่สร้างในกราฟนี้ควรใช้ออบเจ็กต์ที่ส่งคืนเป็นขอบเขต "root"