도움말 Kaggle에 TensorFlow과 그레이트 배리어 리프 (Great Barrier Reef)를 보호하기 도전에 참여

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

공개 정적 함수

NewRootScope ()
새 범위를 반환합니다.

공공 기능

ClearColocation

Scope ClearColocation() const 

모든 코 로케이션 제약 조건을 지 웁니다.

ColocateWith

Scope ColocateWith(
  const Operation & op
) const 

새 범위를 반환합니다.

반환 된 범위 내에서 생성 된 모든 작업은 작업이 배치 된 기기에 함께 배치됩니다. 참고 :이 기능은 장치에 대한 작업 배치를 제어하기 위해서만 내부 라이브러리를 사용하기위한 것입니다. 기기 배치 구현이 변경 될 수 있으므로 공개 사용을 권장하지 않습니다.

ColocateWith

Scope ColocateWith(
  const Output & out
) 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 

operator =

Scope & operator=(
  const Scope & other
)

상태

Status status() const 

~ 범위

 ~Scope()

공개 정적 함수

NewRootScope

Scope NewRootScope()

새 범위를 반환합니다.

이렇게하면 새 그래프가 생성되고이 그래프에서 구성된 모든 작업은 반환 된 개체를 "루트"범위로 사용해야합니다.