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 이름이 유효하지 않은 경우