BatchToSpaceNd

lớp cuối cùng công khai BatchToSpaceNd

BatchToSpace cho các tensor ND loại T.

Thao tác này định hình lại kích thước "lô" 0 thành kích thước `M + 1` của hình dạng `block_shape + [batch]`, xen kẽ các khối này trở lại lưới được xác định bởi kích thước không gian `[1, ..., M]`, để có được kết quả có cùng thứ hạng với đầu vào. Sau đó, các kích thước không gian của kết quả trung gian này được cắt tùy ý theo `cây trồng` để tạo ra đầu ra. Đây là mặt trái của SpaceToBatch. Xem bên dưới để biết mô tả chính xác.

Hằng số

Sợi dây OP_NAME Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Phương pháp công khai

Đầu ra <T>
asOutput ()
Trả về tay cầm tượng trưng của tensor.
tĩnh <T mở rộng TType > BatchToSpaceNd <T>
tạo (Phạm vi phạm vi , đầu vào Toán hạng <T>, Toán hạng <? mở rộng TNumber > blockShape, Toán hạng <? mở rộng TNumber > cây trồng)
Phương thức gốc để tạo một lớp bao bọc một thao tác BatchToSpaceNd mới.
Đầu ra <T>

Phương pháp kế thừa

Hằng số

Chuỗi cuối cùng tĩnh công khai OP_NAME

Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Giá trị không đổi: "BatchToSpaceND"

Phương pháp công khai

Đầu ra công khai <T> asOutput ()

Trả về tay cầm tượng trưng của tensor.

Đầu vào của các hoạt động TensorFlow là đầu ra của một hoạt động TensorFlow khác. Phương pháp này được sử dụng để thu được một thẻ điều khiển mang tính biểu tượng đại diện cho việc tính toán đầu vào.

public static BatchToSpaceNd <T> tạo ( Phạm vi phạm vi , đầu vào Toán hạng <T>, Toán hạng <? mở rộng TNumber > blockShape, Toán hạng <? mở rộng TNumber > cây trồng)

Phương thức gốc để tạo một lớp bao bọc một thao tác BatchToSpaceNd mới.

Thông số
phạm vi phạm vi hiện tại
đầu vào ND có hình dạng `input_shape = [batch] + không gian_shape + còn lại hình dạng`, trong đó không gian_hình dạng có M kích thước.
hình khối 1-D có hình dạng `[M]`, tất cả các giá trị phải >= 1.
cây trồng 2-D với hình dạng `[M, 2]`, tất cả các giá trị phải >= 0. `crops[i] = [crop_start, crop_end]` chỉ định số lượng cần cắt từ thứ nguyên đầu vào `i + 1`, tương ứng với chiều không gian `i`. Yêu cầu `crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]`.

Thao tác này tương đương với các bước sau:

1. Định hình lại `input` thành `reshape` của hình dạng: [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N- 1]]

2. Hoán đổi kích thước của `được định hình lại` để tạo ra `hoán vị` của hình dạng [batch / prod(block_shape),

input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],

input_shape[M+1], ..., input_shape[N-1]]

3. Định hình lại `permuted` để tạo ra `reshape_permuted` có hình dạng [batch / prod(block_shape),

input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],

input_shape[M+1], ..., input_shape[N-1]]

4. Cắt phần đầu và phần cuối của kích thước `[1, ..., M]` của `reshape_permuted` theo `crops` để cho ra kết quả dạng: [batch / prod(block_shape),

input_shape[1] * block_shape[0] - crop[0,0] - crop[0,1], ..., input_shape[M] * block_shape[M-1] - crop[M-1,0] - crop [M-1,1],

input_shape[M+1], ..., input_shape[N-1]]

Vài ví dụ:

(1) Đối với đầu vào sau của hình dạng `[4, 1, 1, 1]`, `block_shape = [2, 2]` và `crops = [[0, 0], [0, 0]]`:

[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
Tenxor đầu ra có hình dạng `[1, 2, 2, 1]` và giá trị:
x = [[[[1], [2]], [[3], [4]]]]
 
(2) Đối với đầu vào sau của hình dạng `[4, 1, 1, 3]`, `block_shape = [ 2, 2]` và `crops = [[0, 0], [0, 0]]`:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
Tenxor đầu ra có hình dạng `[1, 2, 2, 3]` và giá trị:
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
(3) Đối với đầu vào sau của hình dạng `[4, 2, 2, 1]`, `block_shape = [2, 2]` và `crops = [[0, 0], [0, 0]]`:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
Tenxor đầu ra có hình dạng `[1, 4, 4, 1]` và giá trị:
x = [[[[1],   [2],  [3],  [4]],
      [[5],   [6],  [7],  [8]],
      [[9],  [10], [11],  [12]],
      [[13], [14], [15],  [16]]]]
 
(4) Đối với đầu vào sau của hình dạng `[8, 1, 3, 1]`, `block_shape = [ 2, 2]` và `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]]]]
 
Tenxor đầu ra có hình dạng `[2, 2, 4, 1]` và giá trị:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 

Trả lại
  • một phiên bản mới của BatchToSpaceNd

Đầu ra công khai đầu ra <T> ()