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) | Scope & |
status () const | Status |
Fungsi statis publik | |
|---|---|
NewRootScope () | Mengembalikan cakupan baru. |
Fungsi publik
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
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".