tensorflow :: opérations :: BatchToSpaceND
#include <array_ops.h>
BatchToSpace pour les tenseurs ND de type T.
Résumé
Cette opération remodèle la dimension "batch" 0 en dimensions M + 1
de forme block_shape + [batch]
, entrelace ces blocs dans la grille définie par les dimensions spatiales [1, ..., M]
, pour obtenir un résultat avec le même rang que l'entrée. Les dimensions spatiales de ce résultat intermédiaire sont ensuite éventuellement recadrées en fonction des crops
pour produire le rendement. C'est l'inverse de SpaceToBatch. Voir ci-dessous pour une description précise.
Arguments:
- scope: un objet Scope
- input: ND avec forme
input_shape = [batch] + spatial_shape + remaining_shape
, où spatial_shape a M dimensions. - block_shape: 1-D avec forme
[M]
, toutes les valeurs doivent être> = 1. - cultures: 2D avec forme
[M, 2]
, toutes les valeurs doivent être> = 0.crops[i] = [crop_start, crop_end]
spécifie la quantité à recadrer à partir de la dimension d'entréei + 1
, qui correspond à la dimension spatialei
. Il est nécessaire quecrop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]
.
Cette opération équivaut aux étapes suivantes:
- Remodeler l'
input
pourreshaped
forme: [block_shape [0], ..., block_shape [M-1], batch / prod (block_shape), input_shape [1], ..., input_shape [N-1]] - Permute les dimensions de
reshaped
pour produire unepermuted
de forme [batch / prod (block_shape), input_shape [1], block_shape [0], ..., input_shape [M], block_shape [M-1], input_shape [M + 1], ..., forme_entrée [N-1]] - Remodeler
permuted
pour produirereshaped_permuted
de forme [batch / prod (block_shape), input_shape [1] * block_shape [0], ..., input_shape [M] * block_shape [M-1], input_shape [M + 1], .. ., forme_entrée [N-1]] - Recadrez le début et la fin des dimensions
[1, ..., M]
dereshaped_permuted
selon lescrops
pour produire la sortie de la forme: [batch / prod (block_shape), input_shape [1] * block_shape [0] - crop [0, 0] - cultures [0,1], ..., input_shape [M] * block_shape [M-1] - cultures [M-1,0] - cultures [M-1,1], input_shape [M + 1] , ..., forme_entrée [N-1]]
Quelques exemples:
(1) Pour l'entrée suivante de la forme [4, 1, 1, 1]
, block_shape = [2, 2]
et crops = [[0, 0], [0, 0]]
:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
Le tenseur de sortie a la forme [1, 2, 2, 1]
et la valeur:
x = [[[[1], [2]], [[3], [4]]]]
(2) Pour l'entrée suivante de la forme [4, 1, 1, 3]
, block_shape = [2, 2]
et crops = [[0, 0], [0, 0]]
:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
Le tenseur de sortie a la forme [1, 2, 2, 3]
et la valeur:
x = [[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]]
(3) Pour l'entrée suivante de la forme [4, 2, 2, 1]
, block_shape = [2, 2]
et crops = [[0, 0], [0, 0]]
:
x = [[[[1], [3]], [[9], [11]]], [[[2], [4]], [[10], [12]]], [[[5], [7]], [[13], [15]]], [[[6], [8]], [[14], [16]]]]
Le tenseur de sortie a la forme [1, 4, 4, 1]
et la valeur:
x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]], [[9], [10], [11], [12]], [[13], [14], [15], [16]]]]
(4) Pour l'entrée suivante de la forme [8, 1, 3, 1]
, block_shape = [2, 2]
et 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]]]]
Le tenseur de sortie a la forme [2, 2, 4, 1]
et la valeur:
x = [[[[1], [2], [3], [4]], [[5], [6], [7], [8]]], [[[9], [10], [11], [12]], [[13], [14], [15], [16]]]]
Retour:
-
Output
: le tenseur de sortie.
Constructeurs et destructeurs | |
---|---|
BatchToSpaceND (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input block_shape, :: tensorflow::Input crops) |
Attributs publics | |
---|---|
operation | |
output |
Fonctions publiques | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Attributs publics
opération
Operation operation
production
::tensorflow::Output output
Fonctions publiques
BatchToSpaceND
BatchToSpaceND( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input block_shape, ::tensorflow::Input crops )
nœud
::tensorflow::Node * node() const
operator :: tensorflow :: Input
operator::tensorflow::Input() const
operator :: tensorflow :: Output
operator::tensorflow::Output() const