tensorflow::ops::BatchToSpaceND
#include <array_ops.h>BatchToSpace pour les tenseurs ND de type T.
Résumé
Cette opération transforme la dimension « batch » 0 en M + 1 dimensions de forme block_shape + [batch] , puis entrelace ces blocs dans la grille définie par les dimensions spatiales [1, ..., M] afin d'obtenir un résultat de même rang que l'entrée. Les dimensions spatiales de ce résultat intermédiaire sont ensuite, en option, rognées selon crops pour produire la sortie. Il s'agit de l'opération inverse de SpaceToBatch. Voir ci-dessous pour une description détaillée.
Arguments :
- portée : un objet Scope
- entrée : ND avec la 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. - crops : 2D de forme
[M, 2], toutes les valeurs doivent être >= 0.crops[i] = [crop_start, crop_end]spécifie la quantité à rogner à partir de la dimension d'entréei + 1, qui correspond à la dimension spatialei. Il est requis quecrop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1].
Cette opération équivaut aux étapes suivantes :
- Remodeler
inputpourreshaped: [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]] - Permuter les dimensions de
reshapedpour produirepermutedde forme [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]] - Remodeler
permutedpour produirereshaped_permutedde forme [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]] - Découpez les dimensions de début et de fin
[1, ..., M]dereshaped_permutedseloncropspour produire la sortie de forme : [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]]
Quelques exemples :
(1) Pour l'entrée suivante de 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 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 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 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]]]]Retours :
-
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
sortir
::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
opérateur::tensorflow::Entrée
operator::tensorflow::Input() const
opérateur::tensorflow::Sortie
operator::tensorflow::Output() const