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
적용 ( OperationBuilder 빌더)
장치 사양을 적용하고 controlDependency의 각 피연산자를 제공된 빌더에 대한 제어 입력으로 추가합니다.
OperationBuilder
applyControlDependency ( OperationBuilder 빌더)
제공된 빌더에 제어 입력으로 controlDependency의 각 피연산자를 추가합니다.
실행환경
환경 ()
이 범위에서 사용되는 실행 환경을 반환합니다.
getDeviceString ()
범위에서 장치 문자열을 반환합니다.
makeOpName (문자열 defaultName)
필요한 경우 제공된 기본값을 사용하여 연산자의 고유한 이름을 만듭니다.
범위
withControlDependency (Iterable< Op > 컨트롤)
추가된 작업에 제공된 제어 종속성이 있는 새 범위를 반환합니다.
범위
withDevice ( DeviceSpec deviceSpec)
작업에 대해 제공된 장치 사양을 사용하는 새 범위를 반환합니다.
범위
withName (문자열 opName)
작업에 대해 제공된 이름을 사용하는 새 범위를 반환합니다.
범위
withNameAsSubScope (문자열 defaultName)
추가된 작업 앞에 이 범위의 작업 이름( withName(String) 으로 설정)이 붙는 새 범위를 반환하거나, 설정되지 않은 경우 지정된 기본값을 반환합니다.
범위
withSubScope (문자열 childScopeName)
추가된 작업에 제공된 이름 접두사가 포함되는 새 범위를 반환합니다.

상속된 메서드

공공 생성자

공개 범위 ( ExecutionEnvironment 환경)

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

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

공개 방법

공개 OperationBuilder 적용 ( OperationBuilder 빌더)

장치 사양을 적용하고 controlDependency의 각 피연산자를 제공된 빌더에 대한 제어 입력으로 추가합니다.

매개변수
건축업자 OperationBuilder에 제어 입력 및 장치 사양을 추가합니다.

공개 OperationBuilder applyControlDependency ( OperationBuilder 빌더)

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

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

공개 실행 환경 환경 ()

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

공개 문자열 getDeviceString ()

범위에서 장치 문자열을 반환합니다.

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

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

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

이 메서드는 이 인스턴스가 제어하는 ​​이름 범위에 적합한 고유한 이름을 생성합니다. 일반적인 운영자 건물 코드는 다음과 같습니다.

scope.env().opBuilder("Const", scope.makeOpName("Const"))...
 

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

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

public Scope withControlDependency (Iterable< Op > 컨트롤)

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

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

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

공개 범위 withDevice ( DeviceSpec deviceSpec)

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

이 범위 내에서 생성된 작업은 제공된 사양과 일치하는 장치에 생성된 작업을 배치합니다.

매개변수
장치 사양 반환된 범위에 있는 연산자의 장치 사양
보고
  • 작업에 opName을 사용하는 새로운 범위.

공개 범위 withName (문자열 opName)

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

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

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

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

공용 범위 withNameAsSubScope (문자열 defaultName)

추가된 작업 앞에 이 범위의 작업 이름( withName(String) 으로 설정)이 붙는 새 범위를 반환하거나, 설정되지 않은 경우 지정된 기본값을 반환합니다. 이는 복합 작업에 사용하기 위한 것입니다.

이 범위로 생성된 Op는 name/opName/ 접두사로 갖습니다. 실제 이름은 반환된 범위에서 고유합니다. 다른 모든 속성은 현재 범위에서 상속됩니다.

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

매개변수
기본이름 이 범위의 이름이 설정되지 않은 경우 하위 범위의 이름입니다.
보고
  • 새로운 하위 범위
던지기
IllegalArgumentException 이름이 유효하지 않은 경우

공개 범위 withSubScope (문자열 childScopeName)

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

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

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

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