flux tensoriel : : opérations : : LotVersEspaceND
#include <array_ops.h>BatchToSpace pour les tenseurs ND de type T.
Résumé
Cette opération remodèle la dimension "batch" 0 en M + 1 dimensions 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 résultat. C'est l'inverse de SpaceToBatch. Voir ci-dessous pour une description précise.
Arguments :
- scope : un objet Scope
- entrée : ND avec forme
input_shape = [batch] + spatial_shape + remaining_shape, où spatial_shape a M dimensions. - block_shape : 1-D avec la forme
[M], toutes les valeurs doivent être >= 1. - cultures : 2-D avec la 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
inputpourreshapedla forme : [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N-1]] - Permutez les dimensions de
reshapedpour produire une formepermuted[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
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], .. ., forme_entrée[N-1]] - Recadrez le début et la fin des dimensions
[1, ..., M]dereshaped_permuteden fonction descropspour produire la sortie de 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 shape [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 shape [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 shape [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 shape [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
LotVersEspaceND
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