aliran tensor:: Cakupan

#include <scope.h>

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

Ringkasan

Objek Scope adalah container untuk properti TensorFlow Op. Konstruktor op mendapatkan objek Scope sebagai argumen wajib pertama dan op yang dibangun memperoleh properti dalam objek.

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

Hirarki cakupan :

Kelas Scope menyediakan berbagai fungsi With<> yang membuat cakupan baru. Cakupan baru biasanya memiliki satu properti yang diubah sementara properti lainnya diwarisi dari cakupan induk. Metode NewSubScope(name) menambahkan name ke awalan nama untuk operasi yang dibuat dalam cakupan, dan WithOpName() mengubah akhiran yang defaultnya adalah jenis 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"

Lingkup seumur hidup:

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

Keamanan benang:

Objek Scope TIDAK aman untuk thread. Utas tidak dapat memanggil fungsi konstruktor op 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
Kembalikan cakupan baru.
ColocateWith (const Output & out) const
Fungsi kenyamanan untuk di atas.
ExitOnError () const
Kembalikan cakupan baru.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Kembalikan nama unik, gunakan default_name jika nama operasi belum ditentukan.
NewSubScope (const string & child_scope_name) const
Kembalikan cakupan baru.
ToGraphDef (GraphDef *gdef) const
Jika status() adalah Status::OK(), konversikan objek Graph yang disimpan dalam cakupan ini menjadi 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
Kembalikan cakupan baru.
WithControlDependencies (const Output & control_dep) const
Sama seperti di atas, namun mudah untuk menambahkan ketergantungan kontrol pada operasi yang menghasilkan keluaran control_dep.
WithDevice (const string & device) const
Kembalikan cakupan baru.
WithKernelLabel (const string & kernel_label) const
Kembalikan cakupan baru.
WithNoControlDependencies () const
Kembalikan cakupan baru.
WithOpName (Ty... fragments) const
Kembalikan 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

Fungsi statis publik

NewRootScope ()
Kembalikan cakupan baru.

Fungsi publik

HapusKolokasi

Scope ClearColocation() const 

Hapus semua batasan kolokasi.

KolokasiDengan

Scope ColocateWith(
  const Operation & op
) const 

Kembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan ditempatkan bersama di perangkat tempat operasi ditempatkan. CATATAN: Fungsi ini dimaksudkan untuk menggunakan perpustakaan internal hanya untuk mengontrol penempatan operasi pada perangkat. Penggunaan untuk umum tidak dianjurkan karena penerapan penempatan perangkat dapat berubah.

KolokasiDengan

Scope ColocateWith(
  const Output & out
) const 

Fungsi kenyamanan untuk di atas.

ExitOnError

Scope ExitOnError() const 

Kembalikan cakupan baru.

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

DapatkanCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

DapatkanUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Kembalikan nama unik, gunakan default_name jika nama operasi belum ditentukan.

SubScope Baru

Scope NewSubScope(
  const string & child_scope_name
) const 

Kembalikan cakupan baru.

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

Cakupan

 Scope(
  const Scope & other
)

KepadaGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

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

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

Memperbaharui status

void UpdateStatus(
  const Status & s
) const 

Perbarui status pada cakupan ini.

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

Dengan Perangkat yang Ditugaskan

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan menetapkan perangkatnya ke assigned_device .

Dengan Ketergantungan Kontrol

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

Kembalikan cakupan baru.

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

Dengan Ketergantungan Kontrol

Scope WithControlDependencies(
  const Output & control_dep
) const 

Sama seperti di atas, namun mudah untuk menambahkan ketergantungan kontrol pada operasi yang menghasilkan keluaran control_dep.

Dengan Perangkat

Scope WithDevice(
  const string & device
) const 

Kembalikan cakupan baru.

Semua operasi yang dibuat dalam lingkup yang dikembalikan akan mengatur bidang perangkat ke 'perangkat'.

DenganKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Kembalikan cakupan baru.

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

Tanpa Ketergantungan Kontrol

Scope WithNoControlDependencies() const 

Kembalikan cakupan baru.

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

DenganOpName

Scope WithOpName(
  Ty... fragments
) const 

Kembalikan cakupan baru.

Semua operasi yang dibuat dalam lingkup yang dikembalikan akan memiliki nama formulir 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 disetel ke xla_cluster .

kontrol_deps

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

grafik

Graph * graph() const 

graph_as_shared_ptr

std::shared_ptr< Graph > graph_as_shared_ptr() const 

Oke

bool ok() const 

operator=

Scope & operator=(
  const Scope & other
)

status

Status status() const 

~ Ruang Lingkup

 ~Scope()

Fungsi statis publik

RootScope Baru

Scope NewRootScope()

Kembalikan cakupan baru.

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