tensor 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.

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

Genel statik işlevler

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

Kamu işlevleri

ClearColocation

Scope ClearColocation() const 

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

Birlikte Bulun

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 aynı yerde bulunacaktır. NOT: Bu işlevin yalnızca op'ların cihazlara 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 Bulun

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
)

GraphDef'e

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ü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 çı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 

operatör=

Scope & operator=(
  const Scope & other
)

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.