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 untuk 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 | 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 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) | Scope & |
status () const | Status |
Fungsi statis publik | |
---|---|
NewRootScope () | Kembalikan cakupan baru. |
Fungsi publik
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.
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.
PerbaruiStatus
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, tetapi 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
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".