aliran tensor:: Cakupan

#include <scope.h>

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

Ringkasan

Objek Scope adalah penampung untuk properti TensorFlow Op. Konstruktor op mendapatkan objek Lingkup sebagai argumen pertama wajib dan op yang dibangun memperoleh properti di 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 lingkup baru. Lingkup baru biasanya memiliki satu properti yang diubah sementara properti lainnya diwarisi dari lingkup induk. Metode NewSubScope(name) menambahkan name ke awalan nama untuk operasi yang dibuat dalam lingkup, dan WithOpName() mengubah akhiran yang jika tidak default ke 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:

Lingkup baru dibuat dengan memanggil Scope::NewRootScope . Ini menciptakan beberapa sumber daya yang dibagikan oleh semua cakupan turunan yang diturunkan dari cakupan ini, secara langsung atau transitif. Misalnya, lingkup baru membuat objek Graph baru yang operasinya ditambahkan ketika lingkup baru atau anak-anaknya digunakan oleh konstruktor Op. Lingkup baru juga memiliki objek Status yang akan digunakan untuk menunjukkan kesalahan oleh fungsi konstruktor Op yang dipanggil pada lingkup anak mana pun. Fungsi Op-constructor harus memeriksa status scope dengan memanggil metode ok() sebelum melanjutkan untuk membangun op.

Keamanan benang:

Objek Scope BUKAN thread-safe. Utas tidak dapat secara bersamaan memanggil fungsi konstruktor op pada objek Scope yang sama.

Konstruktor dan Destructor

Scope (const Scope & other)
~Scope ()

Fungsi publik

ClearColocation () const
Hapus semua batasan colocation.
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, menggunakan default_name jika nama operasi belum ditentukan.
NewSubScope (const string & child_scope_name) const
Kembalikan cakupan baru.
ToGraphDef (GraphDef *gdef) const
Status
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, tetapi nyaman untuk menambahkan ketergantungan kontrol pada operasi yang menghasilkan output 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
Status

Fungsi statis publik

NewRootScope ()
Kembalikan cakupan baru.

Fungsi publik

HapusColocation

Scope ClearColocation() const 

Hapus semua batasan colocation.

CocateDengan

Scope ColocateWith(
  const Operation & op
) const 

Kembalikan cakupan baru.

Semua operasi yang dibuat dalam lingkup 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 publik tidak dianjurkan karena penerapan penempatan perangkat dapat berubah.

CocateDengan

Scope ColocateWith(
  const Output & out
) const 

Fungsi kenyamanan untuk di atas.

ExitOnError

Scope ExitOnError() const 

Kembalikan cakupan baru.

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

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

DapatkanNamaUnikUntukOp

string GetUniqueNameForOp(
  const string & default_name
) const 

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

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

UntukGraphDef

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

Dengan Perangkat yang Ditugaskan

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Mengembalikan cakupan baru.

Semua operasi yang dibuat dalam cakupan yang dikembalikan akan memiliki perangkat yang ditetapkan untuk assigned_device ke perangkat_assign.

DenganKetergantungan Kontrol

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

Kembalikan cakupan baru.

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

DenganKetergantungan Kontrol

Scope WithControlDependencies(
  const Output & control_dep
) const 

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

Dengan Perangkat

Scope WithDevice(
  const string & device
) const 

Kembalikan cakupan baru.

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

DenganKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Kembalikan cakupan baru.

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

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Kembalikan cakupan baru.

Semua operasi yang dibuat dalam lingkup 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 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 .

control_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 

~Cakupan

 ~Scope()

Fungsi statis publik

Lingkup Akar Baru

Scope NewRootScope()

Kembalikan cakupan baru.

Ini membuat grafik baru dan semua operasi yang dibangun dalam grafik ini harus menggunakan objek yang dikembalikan sebagai lingkup "root".