tensorflow :: 범위
#include <scope.h>
Scope
개체는 공통 이름 접두사와 같은 동일한 속성을 가진 관련 TensorFlow 작업 집합을 나타냅니다.
요약
Scope 개체는 TensorFlow Op 속성의 컨테이너입니다. Op 생성자는 필수 첫 번째 인수로 Scope 개체를 가져오고 생성 된 작업은 개체의 속성을 가져옵니다.
간단한 예 :
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()) { ... }
범위 계층 :
Scope 클래스는 새 범위를 만드는 다양한 With <> 함수를 제공합니다. 새 범위에는 일반적으로 하나의 속성이 변경되고 다른 속성은 부모 범위에서 상속됩니다. NewSubScope (이름)이 추가 메소드 name
범위 이내 OPS의 이름의 접두사 및 WithOpName ()는 연산의 타입을 달리하는 디폴트 접미사를 변경한다.
이름 예 :
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"
범위 수명 :
Scope :: NewRootScope 를 호출하여 새 범위를 만듭니다 . 이렇게하면이 범위에서 직접 또는 전 이적으로 상속하는 모든 자식 범위에서 공유하는 일부 리소스가 생성됩니다. 예를 들어, 새 범위는 새 범위 또는 해당 하위가 Op 생성자에 의해 사용될 때 작업이 추가되는 새 Graph 개체를 만듭니다. 새 범위에는 하위 범위에서 호출되는 Op 생성자 함수에 의해 오류를 나타내는 데 사용되는 Status 개체도 있습니다. Op 생성자 함수는 op 생성을 진행하기 전에 ok () 메서드를 호출하여 범위의 상태를 확인해야합니다.
스레드 안전성 :
Scope
개체는 스레드로부터 안전하지 않습니다. 스레드는 동일한 Scope
개체에서 op-constructor 함수를 동시에 호출 할 수 없습니다.
생성자와 소멸자 | |
---|---|
Scope (const Scope & other) | |
~Scope () |
공공 기능 | |
---|---|
ClearColocation () const | 모든 코 로케이션 제약 조건을 지 웁니다. |
ColocateWith (const Operation & op) const | 새 범위를 반환합니다. |
ColocateWith (const Output & out) const | 위의 편의 기능. |
ExitOnError () const | 새 범위를 반환합니다. |
GetCompositeOpScopes (const string & composite_op_name) const | |
GetUniqueNameForOp (const string & default_name) const | string op 이름이 지정되지 않은 경우 default_name을 사용하여 고유 한 이름을 반환합니다. |
NewSubScope (const string & child_scope_name) const | 새 범위를 반환합니다. |
ToGraphDef (GraphDef *gdef) const | status ()가 Status :: OK ()이면이 범위에 저장된 Graph 객체를 GraphDef proto로 변환하고 Status :: OK ()를 반환합니다. |
UpdateStatus (const Status & s) const | void 이 범위의 상태를 업데이트하십시오. |
WithAssignedDevice (const string & assigned_device) const | 새 범위를 반환합니다. |
WithControlDependencies (const gtl::ArraySlice< Operation > & control_deps) const | 새 범위를 반환합니다. |
WithControlDependencies (const Output & control_dep) const | 위와 동일하지만 control_dep 출력을 생성하는 작업에 제어 종속성을 추가하는 것이 편리합니다. |
WithDevice (const string & device) const | 새 범위를 반환합니다. |
WithKernelLabel (const string & kernel_label) const | 새 범위를 반환합니다. |
WithNoControlDependencies () const | 새 범위를 반환합니다. |
WithOpName (Ty... fragments) const | 새 범위를 반환합니다. |
WithXlaCluster (const string & xla_cluster) const | 새 범위를 반환합니다. |
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 |
공개 정적 함수 | |
---|---|
NewRootScope () | 새 범위를 반환합니다. |
공공 기능
ColocateWith
Scope ColocateWith( const Operation & op ) const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업은 작업이 배치 된 기기에 함께 배치됩니다. 참고 :이 기능은 장치에 대한 작업 배치를 제어하기 위해서만 내부 라이브러리를 사용하기위한 것입니다. 기기 배치 구현이 변경 될 수 있으므로 공개적으로 사용하지 않는 것이 좋습니다.
ExitOnError
Scope ExitOnError() const
새 범위를 반환합니다.
반환 된 범위를 범위 인수로 사용하는 op-constructor 함수는 범위에 상태를 설정하는 대신 오류가 감지되는 즉시 종료됩니다.
GetCompositeOpScopes
CompositeOpScopes GetCompositeOpScopes( const string & composite_op_name ) const
GetUniqueNameForOp
string GetUniqueNameForOp( const string & default_name ) const
op 이름이 지정되지 않은 경우 default_name을 사용하여 고유 한 이름을 반환합니다.
NewSubScope
Scope NewSubScope( const string & child_scope_name ) const
새 범위를 반환합니다.
이 범위로 생성 된 작업에는 접두사로 name/child_scope_name
이 있습니다. 실제 이름은 현재 범위에서 고유합니다. 다른 모든 속성은 현재 범위에서 상속됩니다. child_scope_name
이 비어 있으면 /
가 제거됩니다.
범위
Scope( const Scope & other )
ToGraphDef
Status ToGraphDef( GraphDef *gdef ) const
status ()가 Status :: OK ()이면이 범위에 저장된 Graph 객체를 GraphDef proto로 변환하고 Status :: OK ()를 반환합니다.
그렇지 않으면 GraphDef 변환을 수행하지 않고 오류 상태를있는 그대로 반환합니다.
업데이트 상태
void UpdateStatus( const Status & s ) const
이 범위의 상태를 업데이트하십시오.
참고 : 상태 개체는이 범위의 모든 자식간에 공유됩니다. 결과 상태가 Status :: OK ()가 아니고이 범위에 exit_on_error_가 설정되어 있으면이 함수는 LOG (FATAL)를 호출하여 종료됩니다.
WithAssignedDevice
Scope WithAssignedDevice( const string & assigned_device ) const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업에는 할당 된 기기가 assigned_device
설정 assigned_device
.
WithControlDependencies
Scope WithControlDependencies( const gtl::ArraySlice< Operation > & control_deps ) const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업은 control_deps 벡터의 작업 통합과 현재 범위의 제어 종속성을 제어 종속성으로 갖습니다.
WithControlDependencies
Scope WithControlDependencies( const Output & control_dep ) const
위와 동일하지만 control_dep 출력을 생성하는 작업에 제어 종속성을 추가하는 것이 편리합니다.
WithDevice
Scope WithDevice( const string & device ) const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업에는 device 필드가 'device'로 설정됩니다.
WithKernelLabel
Scope WithKernelLabel( const string & kernel_label ) const
새 범위를 반환합니다.
새 범위로 생성 된 모든 작업에는 '_kernel'속성 값으로 kernel_label이 있습니다.
WithNoControlDependencies
Scope WithNoControlDependencies() const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업에는 다른 작업에 대한 제어 종속성이 없습니다.
WithOpName
Scope WithOpName( Ty... fragments ) const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업은 name/StrCat(fragments...)[_suffix]
형식의 name/StrCat(fragments...)[_suffix]
갖습니다 name/StrCat(fragments...)[_suffix]
WithXlaCluster
Scope WithXlaCluster( const string & xla_cluster ) const
새 범위를 반환합니다.
반환 된 범위 내에서 생성 된 모든 작업은 _XlaCluster 속성이 xla_cluster
설정됩니다.
control_deps
const std::vector< Operation > & control_deps() const
그래프
Graph * graph() const
graph_as_shared_ptr
std::shared_ptr< Graph > graph_as_shared_ptr() const
확인
bool ok() const
상태
Status status() const
~ 범위
~Scope()
공개 정적 함수
NewRootScope
Scope NewRootScope()
새 범위를 반환합니다.
이렇게하면 새 그래프가 생성되고이 그래프에서 생성 된 모든 작업은 반환 된 개체를 "루트"범위로 사용해야합니다.