Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
przepływ tensorowy:: ops:: BatchToSpaceND
#include <array_ops.h>
BatchToSpace dla tensorów ND typu T.
Streszczenie
Ta operacja przekształca wymiar „wsadowy” 0 na wymiary M + 1
kształtu block_shape + [batch]
, przeplata te bloki z powrotem w siatkę zdefiniowaną przez wymiary przestrzenne [1, ..., M]
, aby uzyskać wynik z taką samą rangę jak wejście. Wymiary przestrzenne tego wyniku pośredniego są następnie opcjonalnie przycinane w zależności od crops
aby uzyskać wynik. To jest odwrotność SpaceToBatch. Dokładny opis znajdziesz poniżej.
Argumenty:
- zakres: Obiekt Scope
- dane wejściowe: ND z kształtem
input_shape = [batch] + spatial_shape + remaining_shape
, gdzie przestrzenny_kształt ma M wymiarów. - block_shape: 1-D z kształtem
[M]
, wszystkie wartości muszą wynosić >= 1. - uprawy: 2-D z kształtem
[M, 2]
, wszystkie wartości muszą być >= 0. crops[i] = [crop_start, crop_end]
określa wielkość przycięcia z wymiaru wejściowego i + 1
, który odpowiada wymiarowi przestrzennemu i
. Wymagane jest, aby crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]
.
Ta operacja jest równoważna następującym krokom:
- Zmień kształt
input
na reshaped
kształt: [block_shape[0], ..., block_shape[M-1], wsad / prod(block_shape), input_shape[1], ..., input_shape[N-1]] - Zmień wymiary
reshaped
, aby uzyskać permuted
kształt [batch / prod(block_shape),input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],input_shape[M+1], ..., kształt_wejściowy[N-1]] - Dokonano
permuted
kształtu, aby uzyskać reshaped_permuted
kształt [partia / prod(block_shape),input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],input_shape[M+1], .. ., kształt_wejściowy[N-1]] - Przytnij początek i koniec wymiarów
[1, ..., M]
reshaped_permuted
zgodnie z crops
, aby uzyskać wynik kształtu: [partia / prod(block_shape),input_shape[1] * block_shape[0] - uprawy[0, 0] - uprawy[0,1], ..., input_shape[M] * block_shape[M-1] - uprawy[M-1,0] - uprawy[M-1,1],input_shape[M+1] , ..., kształt_wejściowy[N-1]]
Kilka przykładów:
(1) Dla następujących danych wejściowych kształtu [4, 1, 1, 1]
, block_shape = [2, 2]
i crops = [[0, 0], [0, 0]]
:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
Tensor wyjściowy ma kształt [1, 2, 2, 1]
i wartość:
x = [[[[1], [2]], [[3], [4]]]]
(2) Dla następującego wprowadzenia kształtu [4, 1, 1, 3]
, block_shape = [2, 2]
i crops = [[0, 0], [0, 0]]
:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
Tensor wyjściowy ma kształt [1, 2, 2, 3]
i wartość:
x = [[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
(3) Dla następującego wprowadzenia kształtu [4, 2, 2, 1]
, block_shape = [2, 2]
i crops = [[0, 0], [0, 0]]
:
x = [[[[1], [3]], [[9], [11]]],
[[[2], [4]], [[10], [12]]],
[[[5], [7]], [[13], [15]]],
[[[6], [8]], [[14], [16]]]]
Tensor wyjściowy ma kształt [1, 4, 4, 1]
i wartość:
x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]],
[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]
(4) Dla następującego wprowadzenia kształtu [8, 1, 3, 1]
, block_shape = [2, 2]
i 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 wyjściowy ma kształt [2, 2, 4, 1]
i wartość:
x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]]],
[[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]
Zwroty:
Atrybuty publiczne
Funkcje publiczne
węzeł
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operator::tensorflow::Wyjście
operator::tensorflow::Output() const
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[null,null,["Ostatnia aktualizacja: 2025-07-26 UTC."],[],[],null,["# tensorflow::ops::BatchToSpaceND Class Reference\n\ntensorflow::ops::BatchToSpaceND\n===============================\n\n`#include \u003carray_ops.h\u003e`\n\n[BatchToSpace](/versions/r1.15/api_docs/cc/class/tensorflow/ops/batch-to-space#classtensorflow_1_1ops_1_1_batch_to_space) for N-D tensors of type T.\n\nSummary\n-------\n\nThis operation reshapes the \"batch\" dimension 0 into `M + 1` dimensions of shape `block_shape + [batch]`, interleaves these blocks back into the grid defined by the spatial dimensions `[1, ..., M]`, to obtain a result with the same rank as the input. The spatial dimensions of this intermediate result are then optionally cropped according to `crops` to produce the output. This is the reverse of SpaceToBatch. See below for a precise description.\n\nArguments:\n\n- scope: A [Scope](/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- input: N-D with shape `input_shape = [batch] + spatial_shape + remaining_shape`, where spatial_shape has M dimensions.\n- block_shape: 1-D with shape `[M]`, all values must be \\\u003e= 1.\n- crops: 2-D with shape `[M, 2]`, all values must be \\\u003e= 0. `crops[i] = [crop_start, crop_end]` specifies the amount to crop from input dimension `i + 1`, which corresponds to spatial dimension `i`. It is required that `crop_start[i] + crop_end[i] \u003c= block_shape[i] * input_shape[i + 1]`.\n\n\u003cbr /\u003e\n\nThis operation is equivalent to the following steps:\n\n\n1. Reshape `input` to `reshaped` of shape: \\[block_shape\\[0\\], ..., block_shape\\[M-1\\], batch / prod(block_shape), input_shape\\[1\\], ..., input_shape\\[N-1\\]\\]\n2. Permute dimensions of `reshaped` to produce `permuted` of shape \\[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\\]\\]\n3. Reshape `permuted` to produce `reshaped_permuted` of shape \\[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\\]\\]\n4. Crop the start and end of dimensions `[1, ..., M]` of `reshaped_permuted` according to `crops` to produce the output of shape: \\[batch / prod(block_shape),input_shape\\[1\\] \\* block_shape\\[0\\] - crops\\[0,0\\] - crops\\[0,1\\], ..., input_shape\\[M\\] \\* block_shape\\[M-1\\] - crops\\[M-1,0\\] - crops\\[M-1,1\\],input_shape\\[M+1\\], ..., input_shape\\[N-1\\]\\]\n\n\u003cbr /\u003e\n\nSome examples:\n\n(1) For the following input of shape `[4, 1, 1, 1]`, `block_shape = [2, 2]`, and `crops = [[0, 0], [0, 0]]`:\n\n\n```text\n[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]\n```\n\n\u003cbr /\u003e\n\nThe output tensor has shape `[1, 2, 2, 1]` and value:\n\n\n```text\nx = [[[[1], [2]], [[3], [4]]]]\n```\n\n\u003cbr /\u003e\n\n(2) For the following input of shape `[4, 1, 1, 3]`, `block_shape = [2, 2]`, and `crops = [[0, 0], [0, 0]]`:\n\n\n```text\n[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]\n```\n\n\u003cbr /\u003e\n\nThe output tensor has shape `[1, 2, 2, 3]` and value:\n\n\n```text\nx = [[[[1, 2, 3], [4, 5, 6]],\n [[7, 8, 9], [10, 11, 12]]]]\n```\n\n\u003cbr /\u003e\n\n(3) For the following input of shape `[4, 2, 2, 1]`, `block_shape = [2, 2]`, and `crops = [[0, 0], [0, 0]]`:\n\n\n```text\nx = [[[[1], [3]], [[9], [11]]],\n [[[2], [4]], [[10], [12]]],\n [[[5], [7]], [[13], [15]]],\n [[[6], [8]], [[14], [16]]]]\n```\n\n\u003cbr /\u003e\n\nThe output tensor has shape `[1, 4, 4, 1]` and value:\n\n\n```text\nx = [[[[1], [2], [3], [4]],\n [[5], [6], [7], [8]],\n [[9], [10], [11], [12]],\n [[13], [14], [15], [16]]]]\n```\n\n\u003cbr /\u003e\n\n(4) For the following input of shape `[8, 1, 3, 1]`, `block_shape = [2, 2]`, and `crops = [[0, 0], [2, 0]]`:\n\n\n```text\nx = [[[[0], [1], [3]]], [[[0], [9], [11]]],\n [[[0], [2], [4]]], [[[0], [10], [12]]],\n [[[0], [5], [7]]], [[[0], [13], [15]]],\n [[[0], [6], [8]]], [[[0], [14], [16]]]]\n```\n\n\u003cbr /\u003e\n\nThe output tensor has shape `[2, 2, 4, 1]` and value:\n\n\n```text\nx = [[[[1], [2], [3], [4]],\n [[5], [6], [7], [8]]],\n [[[9], [10], [11], [12]],\n [[13], [14], [15], [16]]]]\n```\n\n\u003cbr /\u003e\n\nReturns:\n\n- [Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output): The output tensor.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [BatchToSpaceND](#classtensorflow_1_1ops_1_1_batch_to_space_n_d_1ae9fc7cf839b67ec1692eb9dbd13dab3f)`(const ::`[tensorflow::Scope](/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` block_shape, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` crops)` ||\n\n| ### Public attributes ||\n|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_batch_to_space_n_d_1a1e8d19aed27a8ba75041200ee25a7310) | [Operation](/versions/r1.15/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_batch_to_space_n_d_1a2f9a5258c2d37ba9ce71c6ebfe2f754d) | `::`[tensorflow::Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\n| ### Public functions ||\n|------------------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_batch_to_space_n_d_1a8c320b154abac62302b289161e5aa745)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_batch_to_space_n_d_1a94adde19cfddf4d1109cceff401543c8)`() const ` | ` ` ` ` |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_batch_to_space_n_d_1a17e07f190557e6565111355cc159b528)`() const ` | ` ` ` ` |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output\n\n```text\n::tensorflow::Output output\n``` \n\nPublic functions\n----------------\n\n### BatchToSpaceND\n\n```gdscript\n BatchToSpaceND(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input input,\n ::tensorflow::Input block_shape,\n ::tensorflow::Input crops\n)\n``` \n\n### node\n\n```gdscript\n::tensorflow::Node * node() const \n``` \n\n### operator::tensorflow::Input\n\n```gdscript\n operator::tensorflow::Input() const \n``` \n\n### operator::tensorflow::Output\n\n```gdscript\n operator::tensorflow::Output() const \n```"]]