Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
tensoreflusso:: ops:: BatchToSpaceND
#include <array_ops.h>
BatchToSpace per tensori ND di tipo T.
Riepilogo
Questa operazione rimodella la dimensione "batch" 0 in M + 1
dimensioni di forma block_shape + [batch]
, intercala nuovamente questi blocchi nella griglia definita dalle dimensioni spaziali [1, ..., M]
, per ottenere un risultato con il stesso rango dell'input. Le dimensioni spaziali di questo risultato intermedio vengono quindi facoltativamente ritagliate in base alle crops
per produrre l'output. Questo è il contrario di SpaceToBatch. Vedi sotto per una descrizione precisa.
Argomenti:
- scope: un oggetto Scope
- input: ND con forma
input_shape = [batch] + spatial_shape + remaining_shape
, dove forma_spaziale ha M dimensioni. - block_shape: 1-D con forma
[M]
, tutti i valori devono essere >= 1. - crops: 2-D con forma
[M, 2]
, tutti i valori devono essere >= 0. crops[i] = [crop_start, crop_end]
specifica la quantità da ritagliare dalla dimensione di input i + 1
, che corrisponde alla dimensione spaziale i
. È necessario che crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]
.
Questa operazione equivale ai seguenti passaggi:
- Riforma
input
per reshaped
la forma: [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]] - Permuta le dimensioni di
reshaped
per produrre permuted
di forma [batch / prod(block_shape),input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],input_shape[M+1], ..., forma_input[N-1]] - Riforma
permuted
per produrre reshaped_permuted
di forma [batch / prod(block_shape),input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],input_shape[M+1], .. ., forma_input[N-1]] - Ritaglia l'inizio e la fine delle dimensioni
[1, ..., M]
di reshaped_permuted
in base alle crops
per produrre l'output di forma: [batch / prod(block_shape),input_shape[1] * block_shape[0] - crops[0, 0] - ritaglia[0,1], ..., input_shape[M] * block_shape[M-1] - ritaglia[M-1,0] - crops[M-1,1],input_shape[M+1] , ..., forma_input[N-1]]
Alcuni esempi:
(1) Per il seguente input di forma [4, 1, 1, 1]
, block_shape = [2, 2]
e crops = [[0, 0], [0, 0]]
:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
Il tensore di uscita ha forma [1, 2, 2, 1]
e valore:
x = [[[[1], [2]], [[3], [4]]]]
(2) Per il seguente input di forma [4, 1, 1, 3]
, block_shape = [2, 2]
e crops = [[0, 0], [0, 0]]
:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
Il tensore di uscita ha forma [1, 2, 2, 3]
e valore:
x = [[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
(3) Per il seguente input di forma [4, 2, 2, 1]
, block_shape = [2, 2]
e crops = [[0, 0], [0, 0]]
:
x = [[[[1], [3]], [[9], [11]]],
[[[2], [4]], [[10], [12]]],
[[[5], [7]], [[13], [15]]],
[[[6], [8]], [[14], [16]]]]
Il tensore di uscita ha forma [1, 4, 4, 1]
e valore:
x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]],
[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]
(4) Per il seguente input di forma [8, 1, 3, 1]
, block_shape = [2, 2]
e 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]]]]
Il tensore di uscita ha forma [2, 2, 4, 1]
e valore:
x = [[[[1], [2], [3], [4]],
[[5], [6], [7], [8]]],
[[[9], [10], [11], [12]],
[[13], [14], [15], [16]]]]
Resi:
-
Output
: il tensore di uscita.
Attributi pubblici
Funzioni pubbliche
nodo
::tensorflow::Node * node() const
operator::tensorflow::Input() const
operatore::tensorflow::Output
operator::tensorflow::Output() const
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-26 UTC.
[null,null,["Ultimo aggiornamento 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```"]]