일반 이름 접두사와 같은 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, ...);
범위 개체는 스레드로부터 안전하지 않습니다 .
공공 생성자
공개 방법
OperationBuilder | |
실행환경 | 환경 () 이 범위에서 사용되는 실행 환경을 반환합니다. |
끈 | makeOpName (문자열 defaultName) 필요한 경우 제공된 기본값을 사용하여 연산자의 고유한 이름을 만듭니다. |
범위 | |
범위 | withName (문자열 opName) 작업에 대해 제공된 이름을 사용하는 새 범위를 반환합니다. |
범위 | withSubScope (문자열 childScopeName) 추가된 작업에 제공된 이름 접두사가 포함되는 새 범위를 반환합니다. |
상속된 메서드
공공 생성자
공개 방법
공개 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 | 이름이 유효하지 않은 경우 |
---|