tensorflow::Kapsam
#include <scope.h> Scope nesnesi, ortak bir ad öneki gibi aynı özelliklere sahip, birbiriyle ilişkili TensorFlow işlemlerini temsil eder.
Özet
Scope nesnesi, TensorFlow Op özelliklerini barındıran bir nesnedir. Op yapıcıları, zorunlu ilk argüman olarak bir Scope nesnesi alır ve oluşturulan op, nesnedeki özellikleri edinir.
Basit bir örnek:
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()) { ... }
Kapsam hiyerarşisi:
Scope sınıfı, yeni bir kapsam oluşturan çeşitli With<> fonksiyonları sağlar. Yeni kapsam genellikle bir özelliği değiştirilirken diğer özellikleri üst kapsamdan miras alınır. NewSubScope(name) metodu, kapsam içinde oluşturulan işlemlerin adlarının ön ekine name ekler ve WithOpName() metodu , varsayılan olarak işlemin türüne ayarlanan son eki değiştirir.
İsim örnekleri:
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"
Kapsamın kullanım ömrü:
Scope::NewRootScope çağrısı yapılarak yeni bir kapsam oluşturulur. Bu, doğrudan veya dolaylı olarak bu kapsamdan miras alan tüm alt kapsamlar tarafından paylaşılan bazı kaynaklar oluşturur. Örneğin, yeni bir kapsam, yeni kapsam veya alt kapsamları bir Op yapıcı tarafından kullanıldığında işlemlerin eklendiği yeni bir Graph nesnesi oluşturur. Yeni kapsam ayrıca, herhangi bir alt kapsamda çağrılan Op yapıcı fonksiyonları tarafından hataları belirtmek için kullanılacak bir Status nesnesine de sahiptir. Op yapıcı fonksiyonları, işlemi oluşturmaya devam etmeden önce ok() yöntemini çağırarak kapsamın durumunu kontrol etmelidir.
İplik güvenliği:
Scope nesnesi iş parçacığı güvenli DEĞİLDİR. İş parçacıkları aynı Scope nesnesi üzerinde eş zamanlı olarak işlem kurucu işlevlerini çağıramaz.
Yapıcılar ve Yıkıcılar | |
|---|---|
Scope (const Scope & other) | |
~Scope () |
Kamusal işlevler | |
|---|---|
ClearColocation () const | Tüm ortak yerleşim kısıtlamalarını kaldırın. |
ColocateWith (const Operation & op) const | Yeni bir kapsam döndürün. |
ColocateWith (const Output & out) const | Yukarıdakine yönelik kolaylık fonksiyonu. |
ExitOnError () const | Yeni bir kapsam döndürün. |
GetCompositeOpScopes (const string & composite_op_name) const | |
GetUniqueNameForOp (const string & default_name) const | string Bir işlem adı belirtilmemişse default_name kullanarak benzersiz bir ad döndürün. |
NewSubScope (const string & child_scope_name) const | Yeni bir kapsam döndürün. |
ToGraphDef (GraphDef *gdef) const | Eğer status() değeri Status::OK() ise, bu kapsamda saklanan Graph nesnesini bir GraphDef proto'ya dönüştürün ve Status::OK() değerini döndürün. |
UpdateStatus (const Status s) const | void Bu kapsamdaki durumu güncelleyin. |
WithAssignedDevice (const string & assigned_device) const | Yeni bir kapsam döndürür. |
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const | Yeni bir kapsam döndürün. |
WithControlDependencies (const Output & control_dep) const | Yukarıdakine benzer, ancak control_dep çıktısını üreten işleme kontrol bağımlılığı eklemek daha uygun olur. |
WithDevice (const string & device) const | Yeni bir kapsam döndürün. |
WithKernelLabel (const string & kernel_label) const | Yeni bir kapsam döndürün. |
WithNoControlDependencies () const | Yeni bir kapsam döndürün. |
WithOpName (Ty... fragments) const | Yeni bir kapsam döndürün. |
WithXlaCluster (const string & xla_cluster) const | Yeni bir kapsam döndürür. |
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 | |
Herkese açık statik fonksiyonlar | |
|---|---|
NewRootScope () | Yeni bir kapsam döndürün. |
Kamusal işlevler
ColocateWith
Scope ColocateWith( const Operation & op ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam içinde oluşturulan tüm işlemler, işlemin yerleştirildiği cihazda birlikte konumlandırılacaktır. NOT: Bu fonksiyon, işlemlerin cihazlara yerleştirilmesini kontrol etmek için yalnızca dahili kütüphanelerde kullanılmak üzere tasarlanmıştır. Cihaz yerleştirme uygulamasının değişime tabi olması nedeniyle, genel kullanım önerilmemektedir.
ColocateWith
Scope ColocateWith( const Output & out ) const
Yukarıdakine yönelik kolaylık fonksiyonu.
Hata Durumunda Çıkış
Scope ExitOnError() const
Yeni bir kapsam döndürün.
Döndürülen kapsamı kapsam argümanı olarak alan op-yapıcı fonksiyonlar, bir hata tespit edildiği anda kapsamın durumunu ayarlamak yerine hemen çıkış yapacaktır.
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
GetUniqueNameForOp
string GetUniqueNameForOp( const string & default_name ) const
Bir işlem adı belirtilmemişse default_name kullanarak benzersiz bir ad döndürün.
YeniAltKapsam
Scope NewSubScope( const string & child_scope_name ) const
Yeni bir kapsam döndürün.
Bu kapsamda oluşturulan işlemlerin ön eki name/child_scope_name olacaktır. Gerçek ad, geçerli kapsamda benzersiz olacaktır. Diğer tüm özellikler geçerli kapsamdan miras alınır. child_scope_name boşsa, / işareti atlanır.
Kapsam
Scope( const Scope & other )
ToGraphDef
Status ToGraphDef( GraphDef *gdef ) const
Eğer status() değeri Status::OK() ise, bu kapsamda saklanan Graph nesnesini bir GraphDef proto'ya dönüştürün ve Status::OK() değerini döndürün.
Aksi takdirde, GraphDef dönüştürme işlemi yapılmadan hata durumunu olduğu gibi döndürün.
GüncellemeDurumu
void UpdateStatus( const Status s ) const
Bu kapsamdaki durumu güncelleyin.
Not: Durum nesnesi bu kapsamın tüm alt öğeleri arasında paylaşılır. Eğer sonuçtaki durum Status::OK() değilse ve bu kapsamda exit_on_error_ ayarlanmışsa, bu fonksiyon LOG(FATAL) çağrısı yaparak sonlanır.
AtanmışCihazla
Scope WithAssignedDevice( const string & assigned_device ) const
Yeni bir kapsam döndürür.
Döndürülen kapsam içinde oluşturulan tüm işlemlerin atanan aygıtı assigned_device olarak ayarlanacaktır.
Kontrol Bağımlılıklarıyla
Scope WithControlDependencies( const gtl::ArraySlice< Operation > & control_deps ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam içinde oluşturulan tüm işlemlerin kontrol bağımlılıkları, control_deps vektöründeki işlemlerin birleşimi ve mevcut kapsamın kontrol bağımlılıkları olacaktır.
Kontrol Bağımlılıklarıyla
Scope WithControlDependencies( const Output & control_dep ) const
Yukarıdakine benzer, ancak control_dep çıktısını üreten işleme kontrol bağımlılığı eklemek daha uygun olur.
Cihazla
Scope WithDevice( const string & device ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam içinde oluşturulan tüm işlemlerin cihaz alanı 'cihaz' olarak ayarlanacaktır.
WithKernelLabel
Scope WithKernelLabel( const string & kernel_label ) const
Yeni bir kapsam döndürün.
Yeni kapsamla oluşturulan tüm işlemlerin '_kernel' özniteliğinin değeri kernel_label olacaktır;
Kontrol Bağımlılıkları Olmadan
Scope WithNoControlDependencies() const
Yeni bir kapsam döndürün.
Döndürülen kapsam içinde oluşturulan tüm işlemlerin diğer işlemlere herhangi bir kontrol bağımlılığı olmayacaktır.
WithOpName
Scope WithOpName( Ty... fragments ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam içinde oluşturulan tüm işlemlerin adları name/StrCat(fragments...)[_suffix] biçiminde olacaktır.
WithXlaCluster
Scope WithXlaCluster( const string & xla_cluster ) const
Yeni bir kapsam döndürür.
Döndürülen kapsam içinde oluşturulan tüm işlemlerin _XlaCluster özniteliği xla_cluster olarak ayarlanacaktır.
kontrol_bağımlılıkları
const std::vector< Operation > & control_deps() const
grafik
Graph * graph() const
graph_as_shared_ptr
std::shared_ptr< Graph > graph_as_shared_ptr() const
Tamam
bool ok() const
durum
Status status() const
~Kapsam
~Scope()
Herkese açık statik fonksiyonlar
YeniKökKapsamı
Scope NewRootScope()
Yeni bir kapsam döndürün.
Bu, yeni bir grafik oluşturur ve bu grafikte oluşturulan tüm işlemler, döndürülen nesneyi "kök" kapsam olarak kullanmalıdır.