BatchToSpaceNd

공개 최종 클래스 BatchToSpaceNd

T 유형의 ND 텐서에 대한 BatchToSpace.

이 작업은 "배치" 차원 0을 `block_shape + [batch]` 형태의 `M + 1` 차원으로 재구성하고, 이러한 블록을 공간 차원 `[1, ..., M]`에 의해 정의된 그리드에 다시 인터리브합니다. 입력과 동일한 순위의 결과를 얻습니다. 그런 다음 이 중간 결과의 공간 차원을 '자르기'에 따라 선택적으로 잘라서 출력을 생성합니다. 이는 SpaceToBatch의 반대입니다. 정확한 설명은 아래를 참조하세요.

공개 방법

출력 <T>
출력 ()
텐서의 기호 핸들을 반환합니다.
static <T, U는 숫자를 확장하고, V는 숫자를 확장> BatchToSpaceNd <T>
생성 ( 스코프 범위, 피연산자 <T> 입력, 피연산자 <U> blockShape, 피연산자 <V> 자르기)
새로운 BatchToSpaceNd 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.
출력 <T>
출력 ()

상속된 메서드

공개 방법

공개 출력 <T> asOutput ()

텐서의 기호 핸들을 반환합니다.

TensorFlow 작업에 대한 입력은 다른 TensorFlow 작업의 출력입니다. 이 메서드는 입력 계산을 나타내는 기호 핸들을 얻는 데 사용됩니다.

public static BatchToSpaceNd <T> create ( 범위 범위, 피연산자 <T> 입력, 피연산자 <U> blockShape, 피연산자 <V> 자르기)

새로운 BatchToSpaceNd 작업을 래핑하는 클래스를 생성하는 팩토리 메서드입니다.

매개변수
범위 현재 범위
입력 `input_shape = [batch] + space_shape + 잔여_shape` 형태의 ND. 여기서 space_shape에는 M 차원이 있습니다.
블록모양 '[M]' 형태의 1차원, 모든 값은 1보다 커야 합니다.
작물 `[M, 2]` 형태의 2D, 모든 값은 0보다 커야 합니다. `crops[i] = [crop_start, Crop_end]`는 입력 차원 `i + 1`에서 자를 양을 지정합니다. 공간 차원 'i'. `crop_start[i] + 자르기_end[i] <= block_shape[i] * input_shape[i + 1]`이 필요합니다.

이 작업은 다음 단계와 동일합니다.

1. 'input'을 다음 모양의 'reshape'로 변경합니다: [block_shape[0], ..., block_shape[M-1], 배치 / prod(block_shape), input_shape[1], ..., input_shape[N- 1]]

2. 모양의 '순열'을 생성하기 위해 '재형성'의 치수를 치환합니다 [배치 / 제품(블록_모양),

입력_모양[1], 블록_모양[0], ..., 입력_모양[M], 블록_모양[M-1],

입력_모양[M+1], ..., 입력_모양[N-1]]

3. 'permuted' 모양을 변경하여 [batch / prod(block_shape)] 모양의 'reshape_permuted'를 생성합니다.

입력_모양[1] * 블록_모양[0], ..., 입력_모양[M] * 블록_모양[M-1],

입력_모양[M+1], ..., 입력_모양[N-1]]

4. `crops`에 따라 `reshape_permuted`의 차원 `[1, ..., M]`의 시작과 끝을 잘라 다음 모양의 출력을 생성합니다. [batch / prod(block_shape),

input_shape[1] * block_shape[0] - 자르기[0,0] - 자르기[0,1], ..., input_shape[M] * block_shape[M-1] - 자르기[M-1,0] - 자르기 [M-1,1],

입력_모양[M+1], ..., 입력_모양[N-1]]

몇 가지 예:

(1) `[4, 1, 1, 1]`, `block_shape = [2, 2]` 및 `crops = [[0, 0], [0, 0]]` 모양의 다음 입력에 대해:

[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
출력 텐서는 `[1, 2, 2, 1]` 형태와 값을 갖습니다:
x = [[[[1], [2]], [[3], [4]]]]
 
(2) 다음 형태 `[4, 1, 1, 3]` 입력의 경우, `block_shape = [ 2, 2]` 및 `crops = [[0, 0], [0, 0]]`:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
출력 텐서의 모양은 `[1, 2, 2, 3]`이고 값은
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
입니다. (3) `[4, 2, 2, 1]`, `block_shape = [2, 2]` 및 `crops = [[0, 0], [0, 0]]` 모양의 다음 입력에 대해:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
출력 텐서는 `[1, 4, 4, 1]` 형태와 값을 갖습니다:
x = [[[[1],   [2],  [3],  [4]],
      [[5],   [6],  [7],  [8]],
      [[9],  [10], [11],  [12]],
      [[13], [14], [15],  [16]]]]
 
(4) 다음 형태 `[8, 1, 3, 1]` 입력의 경우 `block_shape = [ 2, 2]` 및 `crops = [[0, 0], [2, 0]]`:
x = [[[[0], [1], [3]]], [[[0], [9], [11]]],
      [[[0], [2], [4]]], [[[0], [10], [12]]],
      [[[0], [5], [7]]], [[[0], [13], [15]]],
      [[[0], [6], [8]]], [[[0], [14], [16]]]]
 
출력 텐서의 모양은 `[2, 2, 4, 1]`이고 값은
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
입니다.

보고
  • BatchToSpaceNd의 새 인스턴스

공개 출력 <T> 출력 ()