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
Status
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)
status () const
Status

Herkese açık statik fonksiyonlar

NewRootScope ()
Yeni bir kapsam döndürün.

Kamusal işlevler

ClearColocation

Scope ClearColocation() const 

Tüm ortak yerleşim kısıtlamalarını kaldırın.

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 

operatör=

Scope & operator=(
  const Scope & other
)

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.