tensorflow:: Lingkup

#include <scope.h>

Objek Scope merepresentasikan sekumpulan operasi TensorFlow terkait yang memiliki properti yang sama, seperti awalan nama umum.

Ringkasan

Objek Scope adalah wadah untuk properti TensorFlow Op. Konstruktor Op mendapatkan objek Scope sebagai argumen pertama yang wajib, dan Op yang dibuat akan memperoleh properti yang ada dalam objek tersebut.

Contoh sederhana:

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()) { ... }

Hierarki cakupan :

Kelas Scope menyediakan berbagai fungsi With<> yang membuat scope baru. Scope baru biasanya memiliki satu properti yang diubah sementara properti lainnya diwarisi dari scope induk. Metode NewSubScope(name) menambahkan name ke awalan nama untuk operasi yang dibuat di dalam scope, dan WithOpName() mengubah akhiran yang secara default berupa tipe operasi.

Contoh nama:

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"

Masa pakai cakupan :

Cakupan baru dibuat dengan memanggil Scope::NewRootScope . Ini menciptakan beberapa sumber daya yang dibagi oleh semua cakupan anak yang mewarisi dari cakupan ini, secara langsung atau tidak langsung. Misalnya, cakupan baru membuat objek Graph baru yang akan ditambahkan operasi ketika cakupan baru atau anak-anaknya digunakan oleh konstruktor Op. Cakupan baru juga memiliki objek Status yang akan digunakan untuk menunjukkan kesalahan oleh fungsi konstruktor Op yang dipanggil pada cakupan anak mana pun. Fungsi konstruktor Op harus memeriksa status cakupan dengan memanggil metode ok() sebelum melanjutkan untuk membuat operasi.

Keamanan benang:

Objek Scope TIDAK aman untuk thread. Thread tidak dapat memanggil fungsi konstruktor operasi secara bersamaan pada objek Scope yang sama.

Konstruktor dan Destruktor

Scope (const Scope & other)
~Scope ()

Fungsi publik

ClearColocation () const
Hapus semua batasan kolokasi.
ColocateWith (const Operation & op) const
Mengembalikan cakupan baru.
ColocateWith (const Output & out) const
Fungsi kenyamanan untuk hal di atas.
ExitOnError () const
Mengembalikan cakupan baru.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Mengembalikan nama unik, menggunakan default_name jika nama operasi belum ditentukan.
NewSubScope (const string & child_scope_name) const
Mengembalikan cakupan baru.
ToGraphDef (GraphDef *gdef) const
Status
Jika status() adalah Status::OK(), konversikan objek Graph yang tersimpan dalam cakupan ini ke proto GraphDef dan kembalikan Status::OK().
UpdateStatus (const Status & s) const
void
Perbarui status pada cakupan ini.
WithAssignedDevice (const string & assigned_device) const
Mengembalikan cakupan baru.
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const
Mengembalikan cakupan baru.
WithControlDependencies (const Output & control_dep) const
Sama seperti di atas, tetapi lebih mudah untuk menambahkan ketergantungan kontrol pada operasi yang menghasilkan output control_dep.
WithDevice (const string & device) const
Mengembalikan cakupan baru.
WithKernelLabel (const string & kernel_label) const
Mengembalikan cakupan baru.
WithNoControlDependencies () const
Mengembalikan cakupan baru.
WithOpName (Ty... fragments) const
Mengembalikan cakupan baru.
WithXlaCluster (const string & xla_cluster) const
Mengembalikan cakupan baru.
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

Fungsi statis publik

NewRootScope ()
Mengembalikan cakupan baru.

Fungsi publik

ClearColocation

Scope ClearColocation() const 

Hapus semua batasan kolokasi.

Berlokasi Bersama

Scope ColocateWith(
  const Operation & op
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan ditempatkan bersama pada perangkat tempat operasi tersebut ditempatkan. CATATAN: Fungsi ini dimaksudkan untuk digunakan hanya di dalam pustaka internal untuk mengontrol penempatan operasi pada perangkat. Penggunaan publik tidak dianjurkan karena implementasi penempatan perangkat dapat berubah sewaktu-waktu.

Berlokasi Bersama

Scope ColocateWith(
  const Output & out
) const 

Fungsi kenyamanan untuk hal di atas.

KeluarSaatTerjadiKesalahan

Scope ExitOnError() const 

Mengembalikan cakupan baru.

Fungsi konstruktor operasi yang menerima cakupan yang dikembalikan sebagai argumen cakupan akan keluar segera setelah kesalahan terdeteksi, alih-alih mengatur status pada cakupan tersebut.

DapatkanOpKomposit

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

DapatkanNamaUnikUntukOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Mengembalikan nama unik, menggunakan default_name jika nama operasi belum ditentukan.

SubScope Baru

Scope NewSubScope(
  const string & child_scope_name
) const 

Mengembalikan cakupan baru.

Operasi yang dibuat dengan cakupan ini akan memiliki awalan name/child_scope_name . Nama sebenarnya akan unik dalam cakupan saat ini. Semua properti lainnya diwarisi dari cakupan saat ini. Jika child_scope_name kosong, tanda / dihilangkan.

Cakupan

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Jika status() adalah Status::OK(), konversikan objek Graph yang tersimpan dalam cakupan ini ke proto GraphDef dan kembalikan Status::OK().

Jika tidak, kembalikan status kesalahan apa adanya tanpa melakukan konversi GraphDef.

UpdateStatus

void UpdateStatus(
  const Status & s
) const 

Perbarui status pada cakupan ini.

Catatan: Objek status dibagikan di antara semua turunan dari cakupan ini. Jika status yang dihasilkan bukan Status::OK() dan exit_on_error_ diatur pada cakupan ini, fungsi ini keluar dengan memanggil LOG(FATAL).

DenganPerangkatYangDitugaskan

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan memiliki perangkat yang ditugaskan ke assigned_device .

Dengan Kontrol Dependensi

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

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan memiliki ketergantungan kontrol berupa gabungan operasi dalam vektor control_deps dan ketergantungan kontrol dari cakupan saat ini.

Dengan Kontrol Dependensi

Scope WithControlDependencies(
  const Output & control_dep
) const 

Sama seperti di atas, tetapi lebih mudah untuk menambahkan ketergantungan kontrol pada operasi yang menghasilkan output control_dep.

Dengan Perangkat

Scope WithDevice(
  const string & device
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan memiliki bidang perangkat yang diatur ke 'perangkat'.

DenganLabel Kernel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dengan cakupan baru akan memiliki kernel_label sebagai nilai untuk atribut '_kernel' mereka;

Dengan Tanpa Kontrol Ketergantungan

Scope WithNoControlDependencies() const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan tidak akan memiliki ketergantungan kontrol pada operasi lain.

DenganOpName

Scope WithOpName(
  Ty... fragments
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan memiliki nama dalam bentuk name/StrCat(fragments...)[_suffix]

DenganXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan memiliki atribut _XlaCluster yang diatur ke xla_cluster .

dependensi_kontrol

const std::vector< Operation > & control_deps() const 

grafik

Graph * graph() const 

grafik_sebagai_ptr_bersama

std::shared_ptr< Graph > graph_as_shared_ptr() const 

Oke

bool ok() const 

operator=

Scope & operator=(
  const Scope & other
)

status

Status status() const 

Lingkup

 ~Scope()

Fungsi statis publik

NewRootScope

Scope NewRootScope()

Mengembalikan cakupan baru.

Ini akan membuat grafik baru dan semua operasi yang dibangun dalam grafik ini harus menggunakan objek yang dikembalikan sebagai cakupan "akar".