dòng chảy :: hoạt động :: BatchToSpaceND
#include <array_ops.h>
BatchToSpace cho bộ căng ND kiểu T.
Tóm lược
Thao tác này định dạng lại kích thước "lô" 0 thành kích thước M + 1
của hình block_shape + [batch]
, xen kẽ các khối này trở lại lưới được xác định bởi các kích thước không gian [1, ..., M]
, để thu được kết quả với cùng thứ hạng với đầu vào. Các kích thước không gian của kết quả trung gian này sau đó được tùy chọn cắt theo crops
để 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.
Tranh luận:
- phạm vi: Một đối tượng Phạm vi
- input: ND với shape
input_shape = [batch] + spatial_shape + remaining_shape
lại_shape, trong đó spatial_shape có M kích thước. - block_shape: 1-D với shape
[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ây trồng từ thứ nguyên đầu vàoi + 1
, tương ứng với thứ nguyên không giani
. Yêu cầucrop_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:
- Định hình lại
input
đểreshaped
hình dạng: [block_shape [0], ..., block_shape [M-1], batch / prod (block_shape), input_shape [1], ..., input_shape [N-1]] - Hoán vị các kích thước
reshaped
để tạo rapermuted
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]] - Định
reshaped_permuted
permuted
để tạo rareshaped_permuted
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]] - Cắt phần đầu và phần cuối của kích thước
[1, ..., M]
củareshaped_permuted
theocrops
để tạo ra đầu ra của hình dạng: [batch / prod (block_shape), input_shape [1] * block_shape [0] - crop [0, 0] - cây trồng [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 shape [4, 1, 1, 1]
, block_shape = [2, 2]
và block_shape = [2, 2]
crops = [[0, 0], [0, 0]]
:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
Tensor đầ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 shape [4, 1, 1, 3]
, block_shape = [2, 2]
và block_shape = [2, 2]
crops = [[0, 0], [0, 0]]
:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
Tensor đầ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 shape [4, 2, 2, 1]
, block_shape = [2, 2]
và 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]]]]
Tensor đầ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 shape [8, 1, 3, 1]
, block_shape = [2, 2]
và 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]]]]
Tensor đầ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]]]]
Lợi nhuận:
-
Output
: Bộ căng đầu ra.
Người xây dựng và Người phá hủy | |
---|---|
BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops) |
Thuộc tính công khai | |
---|---|
operation | |
output |
Chức năng công cộng | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Thuộc tính công khai
hoạt động
Operation operation
đầu ra
::tensorflow::Output output
Chức năng công cộng
BatchToSpaceND
BatchToSpaceND( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input block_shape, ::tensorflow::Input crops )
nút
::tensorflow::Node * node() const
toán tử :: tensorflow :: Đầu vào
operator::tensorflow::Input() const
toán tử :: tensorflow :: Đầu ra
operator::tensorflow::Output() const