Scope

공개 최종 수업 범위

일반 이름 접두사와 같은 Tensorflow 작업을 생성할 때 관련 속성 그룹을 관리합니다.

Scope 는 TensorFlow Ops에 적용되는 공통 속성에 대한 컨테이너입니다. 일반 사용자 코드는 Scope 를 초기화하고 이를 Operation 빌딩 클래스에 제공합니다. 예:

Scope scope = new Scope(graph);
 Constant c = Constant.create(scope, 42);
 

Operation 빌딩 클래스는 Scope를 획득하고 이를 사용하여 기본 Tensorflow 작업에 대한 속성을 설정합니다. 예:

// An operator class that adds a constant.
 public class Constant {
   public static Constant create(Scope scope, ...) {
      scope.graph().opBuilder(
        "Const", scope.makeOpName("Const"))
        .setAttr(...)
        .build()
      ...
   }
 }
 

범위 계층 구조:

Scope 새 범위를 생성하는 다양한 with() 메서드를 제공합니다. 새 범위에는 일반적으로 하나의 속성이 변경되고 다른 속성은 상위 범위에서 상속됩니다.

이전과 같이 구현된 Constant 사용한 예:

Scope root = new Scope(graph);

 // The linear subscope will generate names like linear/...
 Scope linear = Scope.withSubScope("linear");

 // This op name will be "linear/W"
 Constant.create(linear.withName("W"), ...);

 // This op will be "linear/Const", using the default
 // name provided by Constant
 Constant.create(linear, ...);

 // This op will be "linear/Const_1", using the default
 // name provided by Constant and making it unique within
 // this scope
 Constant.create(linear, ...);
 

범위 개체는 스레드로부터 안전 하지 않습니다 .

공공 생성자

범위 ( ExecutionEnvironment 환경)
새로운 최상위 범위를 만듭니다.

공개 방법

OperationBuilder
applyControlDependency ( OperationBuilder 빌더)
제공된 빌더에 제어 입력으로 controlDependency의 각 피연산자를 추가합니다.
실행환경
환경 ()
이 범위에서 사용되는 실행 환경을 반환합니다.
makeOpName (문자열 defaultName)
필요한 경우 제공된 기본값을 사용하여 연산자의 고유한 이름을 만듭니다.
범위
withControlDependency (Iterable< Operand <?>> 컨트롤)
추가된 작업에 제공된 제어 종속성이 있는 새 범위를 반환합니다.
범위
withName (문자열 opName)
작업에 대해 제공된 이름을 사용하는 새 범위를 반환합니다.
범위
withSubScope (문자열 childScopeName)
추가된 작업에 제공된 이름 접두사가 포함되는 새 범위를 반환합니다.

상속된 메서드

공공 생성자

공개 범위 ( ExecutionEnvironment 환경)

새로운 최상위 범위를 만듭니다.

매개변수
환경 범위에서 사용되는 실행 환경입니다.

공개 방법

공개 OperationBuilder applyControlDependency ( OperationBuilder 빌더)

제공된 빌더에 제어 입력으로 controlDependency의 각 피연산자를 추가합니다.

매개변수
건축업자 제어 입력을 추가하는 OperationBuilder

공개 실행 환경 환경 ()

이 범위에서 사용되는 실행 환경을 반환합니다.

공개 문자열 makeOpName (문자열 defaultName)

필요한 경우 제공된 기본값을 사용하여 연산자의 고유한 이름을 만듭니다.

이는 일반적으로 연산자 구축 클래스에 의해서만 호출됩니다.

이 메서드는 이 인스턴스에서 제어하는 ​​이름 범위에 적합한 고유한 이름을 생성합니다. 일반적인 운영자 구축 코드는

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 
와 같습니다.

참고: 복합 연산자 구축 클래스(즉, 다른 연산자 구축 코드를 호출하여 관련 연산 세트를 생성하는 클래스)를 제공하는 경우 제공된 이름은 모든 기본 연산자에 대한 하위 범위 역할을 합니다.

매개변수
기본이름 기본 연산자의 이름입니다.
보고
  • 운영자의 고유한 이름입니다.
던지기
IllegalArgumentException 기본 이름이 유효하지 않은 경우.

public Scope withControlDependency (Iterable< Operand <?>> 컨트롤)

추가된 작업에 제공된 제어 종속성이 있는 새 범위를 반환합니다.

이 범위로 생성된 Op는 제공된 각 컨트롤의 컨트롤 에지를 갖게 됩니다. 다른 모든 속성은 현재 범위에서 상속됩니다.

매개변수
통제 수단 반환된 범위로 생성된 작업에 대한 종속성을 제어합니다.
보고
  • 제공된 제어 종속성이 있는 새 범위

공개 범위 withName (문자열 opName)

작업에 대해 제공된 이름을 사용하는 새 범위를 반환합니다.

이 범위 내에서 생성된 작업은 name/opName[_suffix] 형식의 이름을 갖습니다. 이를 통해 특정 연산자의 이름을 보다 의미 있게 지정할 수 있습니다.

이름은 정규식 [A-Za-z0-9.][A-Za-z0-9_.\-]* 일치해야 합니다.

매개변수
opName 반환된 범위에 있는 연산자의 이름
보고
  • 작업에 opName을 사용하는 새로운 범위.
던지기
IllegalArgumentException 이름이 유효하지 않은 경우

공개 범위 withSubScope (문자열 childScopeName)

추가된 작업에 제공된 이름 접두사가 포함되는 새 범위를 반환합니다.

이 범위로 생성된 작업에는 접두사로 name/childScopeName/ 포함됩니다. 실제 이름은 반환된 범위에서 고유합니다. 다른 모든 속성은 현재 범위에서 상속됩니다.

하위 범위 이름은 정규식 [A-Za-z0-9.][A-Za-z0-9_.\-]* 일치해야 합니다.

매개변수
childScopeName 새 하위 범위의 이름
보고
  • 새로운 하위 범위
던지기
IllegalArgumentException 이름이 유효하지 않은 경우