tensör akışı:: Kapsam
#include <scope.h>
Bir Scope
nesnesi, ortak ad öneki gibi aynı özelliklere sahip bir dizi ilgili TensorFlow işlemini temsil eder.
Özet
Scope nesnesi, TensorFlow Op özelliklerine yönelik bir kapsayıcıdır. 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<> işlevleri sağlar. Yeni kapsamda genellikle bir özellik değiştirilirken diğer özellikler üst kapsamdan devralınır. NewSubScope(name) yöntemi, kapsam içinde oluşturulan op'ların adlarının önekine name
ekler ve WithOpName(), aksi takdirde op'un türüne varsayılan olarak atanan 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 ömrü:
Scope::NewRootScope çağrılarak yeni bir kapsam oluşturulur. Bu, doğrudan veya geçişli olarak bu kapsamdan devralınan tüm alt kapsamlar tarafından paylaşılan bazı kaynaklar oluşturur. Örneğin, yeni bir kapsam, yeni kapsam veya alt öğeleri bir Op yapıcısı tarafından kullanıldığında işlemlerin eklendiği yeni bir Graph nesnesi oluşturur. Yeni kapsam aynı zamanda herhangi bir alt kapsamda çağrılan Op-yapıcı işlevleri tarafından yapılan hataları belirtmek için kullanılacak bir Status nesnesine de sahiptir. Op-yapıcı fonksiyonları, op'u oluşturmaya devam etmeden önce ok() yöntemini çağırarak kapsamın durumunu kontrol etmelidir.
Konu güvenliği:
Scope
nesnesi iş parçacığı açısından güvenli DEĞİLDİR. İş parçacıkları aynı Scope
nesnesinde eşzamanlı olarak op-yapıcı işlevlerini çağıramaz.
Yapıcılar ve Yıkıcılar | |
---|---|
Scope (const Scope & other) | |
~Scope () |
Kamu işlevleri | |
---|---|
ClearColocation () const | Tüm ortak yerleşim kısıtlamalarını temizleyin. |
ColocateWith (const Operation & op) const | Yeni bir kapsam döndürün. |
ColocateWith (const Output & out) const | Yukarıdakiler için kolaylık işlevi. |
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 | status(), Status::OK() ise, bu kapsamda depolanan Graph nesnesini bir GraphDef protokolüne dönüştürün ve Status::OK() işlevini 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ıdakiyle aynıdır ancak control_dep çıktısını üreten işleme kontrol bağımlılığı eklemek uygundur. |
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 |
Genel statik işlevler | |
---|---|
NewRootScope () | Yeni bir kapsam döndürün. |
Kamu işlevleri
Birlikte Yerleştir
Scope ColocateWith( const Operation & op ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam dahilinde oluşturulan tüm işlemler, işlemin yerleştirildiği cihazda aynı yerde bulunacaktır. NOT: Bu işlevin yalnızca op'ların aygıtlara yerleştirilmesini kontrol etmek için dahili kitaplıkları kullanması amaçlanmıştır. Cihaz yerleştirme uygulaması değişebileceğinden halka açık kullanım teşvik edilmemektedir.
Birlikte Yerleştir
Scope ColocateWith( const Output & out ) const
Yukarıdakiler için kolaylık işlevi.
ÇıkışOnError
Scope ExitOnError() const
Yeni bir kapsam döndürün.
Kapsam bağımsız değişkeni olarak döndürülen kapsamı alan op-yapıcı işlevleri, kapsamdaki durumu ayarlamak yerine bir hata algılanır algılanmaz çıkar.
CompositeOpScopes'u Getirin
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 kapsam ile oluşturulan operasyonların öneki name/child_scope_name
olacaktır. Gerçek ad mevcut kapsamda benzersiz olacaktır. Diğer tüm özellikler geçerli kapsamdan devralınır. child_scope_name
boşsa /
atlanır.
Kapsam
Scope( const Scope & other )
ToGraphDef
Status ToGraphDef( GraphDef *gdef ) const
status(), Status::OK() ise, bu kapsamda depolanan Graph nesnesini bir GraphDef protokolüne dönüştürün ve Status::OK() işlevini döndürün.
Aksi takdirde, GraphDef dönüşümü gerçekleştirmeden 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. Ortaya çıkan durum Status::OK() değilse ve bu kapsamda çıkış_on_error_ ayarlandıysa, bu işlevden LOG(FATAL) çağrılarak çıkılır.
Atanan 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 operasyonların atanmış aygıtları, assigned_device
olarak ayarlanacaktır.
Kontrol Bağımlılıkları ile
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 operasyonlar, kontrol bağımlılıkları olarak, control_deps vektöründeki işlemlerin birleşimine ve mevcut kapsamın kontrol bağımlılıklarına sahip olacaktır.
Kontrol Bağımlılıkları ile
Scope WithControlDependencies( const Output & control_dep ) const
Yukarıdakiyle aynıdır ancak control_dep çıktısını üreten işleme kontrol bağımlılığı eklemek uygundur.
Cihazla
Scope WithDevice( const string & device ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam dahilinde oluşturulan tüm operasyonların cihaz alanı 'cihaz' olarak ayarlanacaktır.
Çekirdek Etiketli
Scope WithKernelLabel( const string & kernel_label ) const
Yeni bir kapsam döndürün.
Yeni kapsamla oluşturulan tüm operasyonlar, '_kernel' özniteliğinin değeri olarak kernel_label'e sahip olacaktır;
Kontrol Bağımlılığı Olmadan
Scope WithNoControlDependencies() const
Yeni bir kapsam döndürün.
Döndürülen kapsam dahilinde oluşturulan tüm operasyonların diğer operasyonlara hiçbir kontrol bağımlılığı olmayacaktır.
OpName ile
Scope WithOpName( Ty... fragments ) const
Yeni bir kapsam döndürün.
Döndürülen kapsam içinde oluşturulan tüm operasyonlar name/StrCat(fragments...)[_suffix]
biçiminde adlara sahip olacaktır.
XlaCluster ile
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 operasyonların _XlaCluster öznitelikleri xla_cluster
olarak ayarlanacaktır.
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
Tamam
bool ok() const
durum
Status status() const
~Kapsam
~Scope()
Genel statik işlevler
YeniRootScope
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.