ML Topluluk Günü 9 Kasım! TensorFlow, JAX güncellemeler için bize katılın ve daha fazla bilgi edinin

tensorflow :: Dürbün

#include <scope.h>

Bir Scope nesnesi, ortak bir ad öneki gibi aynı özelliklere sahip bir dizi ilgili TensorFlow işlemini temsil eder.

Özet

Scope nesnesi, TensorFlow Op özellikleri için bir kaptır. İşlem oluşturucuları, zorunlu ilk bağımsız değişken olarak bir Kapsam nesnesi alırlar ve oluşturulan işlem, 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 (ad) yöntemi, kapsam dahilinde oluşturulan işlemlerin adlarının önekine name ekler ve WithOpName () , aksi takdirde işlem türüne 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 İşlem yapıcısı tarafından kullanıldığında işlemlerin eklendiği yeni bir Grafik nesnesi oluşturur. Yeni kapsam ayrıca, herhangi bir alt kapsamda çağrılan İşlem yapıcı işlevlerinin hatalarını belirtmek için kullanılacak bir Durum nesnesine sahiptir. İşlem yapıcı işlevleri, işlem oluşturmaya devam etmeden önce ok () yöntemini çağırarak kapsamın durumunu kontrol etmelidir.

İplik güvenliği:

Scope nesnesi iş parçacığı için güvenli DEĞİLDİR. İş parçacıkları, aynı Scope nesnesindeki op-yapıcı işlevlerini aynı anda ç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ı temizleyin.
ColocateWith (const Operation & op) const
Yeni bir kapsam döndür.
ColocateWith (const Output & out) const
Yukarıdakiler için kolaylık işlevi.
ExitOnError () const
Yeni bir kapsam döndür.
GetCompositeOpScopes (const string & composite_op_name) const
GetUniqueNameForOp (const string & default_name) const
string
Bir işlem adı belirtilmemişse varsayılan_adı kullanarak benzersiz bir ad döndürün.
NewSubScope (const string & child_scope_name) const
Yeni bir kapsam döndür.
ToGraphDef (GraphDef *gdef) const
Status () Status :: OK () ise, bu kapsamda depolanan Graph nesnesini GraphDef protokolüne dönüştürün ve Status :: OK () döndür.
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.
WithControlDependencies (const Output & control_dep) const
Yukarıdakinin aynısıdır, ancak kontrol_dep çıktısını üreten işleme kontrol bağımlılığı eklemek uygundur.
WithDevice (const string & device) const
Yeni bir kapsam döndür.
WithKernelLabel (const string & kernel_label) const
Yeni bir kapsam döndür.
WithNoControlDependencies () const
Yeni bir kapsam döndür.
WithOpName (Ty... fragments) const
Yeni bir kapsam döndür.
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.

Kamusal işlevler

ClearColocation

Scope ClearColocation() const 

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

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

Yeni bir kapsam döndür.

İade edilen kapsam dahilinde oluşturulan tüm operasyonlar, operasyonun yerleştirildiği cihazda birlikte konumlandırılacaktır. NOT: Bu işlev, dahili kitaplıkları yalnızca işlemlerin cihazlara yerleştirilmesini kontrol etmek için kullanmak üzere tasarlanmıştır. Cihaz yerleştirme uygulaması değişikliğe tabi olduğundan, halka açık kullanım teşvik edilmemektedir.

ColocateWith

Scope ColocateWith(
  const Output & out
) const 

Yukarıdakiler için kolaylık işlevi.

ExitOnError

Scope ExitOnError() const 

Yeni bir kapsam döndür.

Kapsam bağımsız değişkeni olarak döndürülen kapsamı alan işlem yapıcı işlevleri, kapsamda durumu ayarlamak yerine bir hata tespit edilir edilmez çıkış yapar.

GetCompositeOpScopes

CompositeOpScopes GetCompositeOpScopes(
  const string & composite_op_name
) const 

GetUniqueNameForOp

string GetUniqueNameForOp(
  const string & default_name
) const 

Bir işlem adı belirtilmemişse varsayılan_adı kullanarak benzersiz bir ad döndürün.

NewSubScope

Scope NewSubScope(
  const string & child_scope_name
) const 

Yeni bir kapsam döndür.

Bu kapsamla oluşturulan name/child_scope_name önek olarak name/child_scope_name olacaktır. Gerçek ad, mevcut kapsamda benzersiz olacaktır. Diğer tüm özellikler mevcut kapsamdan miras alınır. child_scope_name boşsa / geçersizdir.

Dürbün

 Scope(
  const Scope & other
)

ToGraphDef

Status ToGraphDef(
  GraphDef *gdef
) const 

Status (), Status :: OK () ise, bu kapsamda depolanan Graph nesnesini GraphDef protokolüne dönüştürün ve Status :: OK () döndürür.

Aksi takdirde, GraphDef dönüşümü yapmadan 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 exit_on_error_ bu kapsamda ayarlanmışsa, bu işlev LOG (FATAL) çağırarak çıkar.

WithAssignedDevice

Scope WithAssignedDevice(
  const string & assigned_device
) const 

Yeni bir kapsam döndürür.

İade kapsamında oluşturulan tüm ops kendilerine atanan cihaz olarak ayarlanmış olacaktır assigned_device .

WithControlDependencies

Scope WithControlDependencies(
  const gtl::ArraySlice< Operation > & control_deps
) const 

Yeni bir kapsam döndür.

Döndürülen kapsam içinde oluşturulan tüm işlemler, kontrol bağımlılıkları olarak, kontrol_deps vektöründeki işlemlerin birliğine ve geçerli kapsamın kontrol bağımlılıklarına sahip olacaktır.

WithControlDependencies

Scope WithControlDependencies(
  const Output & control_dep
) const 

Yukarıdakinin aynısıdır, ancak kontrol_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.

İade edilen kapsam dahilinde oluşturulan tüm operasyonlarda cihaz alanı "cihaz" olarak ayarlanacaktır.

WithKernelLabel

Scope WithKernelLabel(
  const string & kernel_label
) const 

Yeni bir kapsam döndür.

Yeni kapsamla oluşturulan tüm işlemlerin '_kernel' özniteliğinin değeri olarak kernel_label olacaktır;

WithNoControlDependencies

Scope WithNoControlDependencies() const 

Yeni bir kapsam döndür.

Döndürülen kapsam dahilinde oluşturulan tüm işlemlerin diğer işlemlere hiçbir denetim bağımlılığı olmayacaktır.

WithOpName

Scope WithOpName(
  Ty... fragments
) const 

Yeni bir kapsam döndür.

Döndürülen kapsam içinde oluşturulan tüm operasyonlar, form name/StrCat(fragments...)[_suffix] adlarına sahip olacaktır.

WithXlaCluster

Scope WithXlaCluster(
  const string & xla_cluster
) const 

Yeni bir kapsam döndürür.

İade kapsamında oluşturulan tüm ops kendi _XlaCluster nitelik olarak ayarlanmış olacak xla_cluster .

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 mı

bool ok() const 

operatör =

Scope & operator=(
  const Scope & other
)

statü

Status status() const 

~ Kapsam

 ~Scope()

Genel statik işlevler

NewRootScope

Scope NewRootScope()

Yeni bir kapsam döndür.

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.