tensör akışı:: Dürbün
#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 özellikleri için bir kapsayıcıdır. Op kurucuları, zorunlu bir ilk argüman olarak bir Scope nesnesi alır ve oluşturulan op, nesnedeki özellikleri alır.
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 kapsamın tipik olarak bir özelliği değiştirilirken diğer özellikler üst kapsamdan devralınır. NewSubScope(name) yöntemi, kapsam içinde oluşturulan operasyonlar için adların ön ekine name
ekler ve WithOpName() , aksi takdirde operasyonun türü için varsayılan olan soneki 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 devralan tüm alt kapsamlar tarafından paylaşılan bazı kaynaklar oluşturur. Örneğin, yeni bir kapsam, yeni kapsam veya alt öğeleri bir Op kurucusu tarafından kullanıldığında işlemlerin eklendiği yeni bir Graph nesnesi oluşturur. Yeni kapsamın ayrıca, herhangi bir alt kapsamda çağrılan Op-constructor fonksiyonlarının hatalarını belirtmek için kullanılacak bir Status nesnesi vardır. Op-constructor işlevleri, op'u oluşturmaya devam etmeden önce ok() yöntemini çağırarak kapsamın durumunu kontrol etmelidir.
İplik güvenliği:
Bir Scope
nesnesi iş parçacığı için güvenli DEĞİLDİR. İş parçacıkları, aynı Scope
nesnesinde aynı anda op-constructor 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 op 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() 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ıdakiyle aynı, ancak control_dep çıktısını üreten işleme denetim bağımlılığı eklemek için uygun. |
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
Scope ColocateWith( const Operation & op ) const
Yeni bir kapsam döndürün.
Döndürülen kapsamda oluşturulan tüm operasyonlar, operasyonun yerleştirildiği cihazda birlikte konumlandırılacaktır. NOT: Bu işlevin, yalnızca operasyonların cihazlara yerleştirilmesini kontrol etmek için dahili kitaplıkları kullanması amaçlanmıştır. Cihaz yerleştirme uygulaması değişebileceğinden, genel kullanım teşvik edilmemektedir.
ExitOnError
Scope ExitOnError() const
Yeni bir kapsam döndürün.
Döndürülen kapsamı kapsam argümanı olarak alan op-constructor işlevleri, kapsamda durumu ayarlamak yerine bir hata algılanır algılanmaz çıkacaktır.
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
GetUniqueNameForOp
string GetUniqueNameForOp( const string & default_name ) const
Bir op adı belirtilmemişse default_name kullanarak benzersiz bir ad döndürün.
YeniSubScope
Scope NewSubScope( const string & child_scope_name ) const
Yeni bir kapsam döndürün.
Bu kapsamla oluşturulan operasyonların önek olarak name/child_scope_name
olacaktır. Gerçek ad, geçerli kapsamda benzersiz olacaktır. Diğer tüm özellikler geçerli kapsamdan devralınır. child_scope_name
boşsa, /
işaretlenir.
Dürbün
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() değerini döndürün.
Aksi takdirde, GraphDef dönüşümü gerçekleştirmeden hata durumunu olduğu gibi döndürün.
Güncelleme durumu
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 exit_on_error_ ayarlanmışsa, LOG(FATAL) çağrılarak bu fonksiyondan çıkılır.
Atanan Cihazla
Scope WithAssignedDevice( const string & assigned_device ) const
Yeni bir kapsam döndürür.
Döndürülen kapsamda oluşturulan tüm operasyonlar, assigned_device
aygıtlarına atanmış_aygıt 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 kapsamda oluşturulan tüm işlemler, kontrol bağımlılıkları olarak, control_deps vektöründeki işlemlerin birleşimine ve geçerli 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ı, ancak control_dep çıktısını üreten işleme denetim bağımlılığı eklemek için uygun.
Cihazla
Scope WithDevice( const string & device ) const
Yeni bir kapsam döndürün.
Döndürülen kapsamda oluşturulan tüm operasyonlar, cihaz alanını 'cihaz' olarak ayarlayacaktır.
Çekirdek Etiketi ile
Scope WithKernelLabel( const string & kernel_label ) const
Yeni bir kapsam döndürün.
Yeni kapsamla oluşturulan tüm operasyonlar, '_kernel' özniteliklerinin değeri olarak kernel_label'e sahip olacaktır;
Kontrol Bağımlılıkları ile
Scope WithNoControlDependencies() const
Yeni bir kapsam döndürün.
Döndürülen kapsamda 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 kapsamda oluşturulan tüm işlemler, name/StrCat(fragments...)[_suffix]
biçimindeki adlara sahip olacaktır.
XlaCluster ile
Scope WithXlaCluster( const string & xla_cluster ) const
Yeni bir kapsam döndürür.
Döndürülen kapsamda oluşturulan tüm operasyonların _XlaCluster özniteliği 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.