Cette page a été traduite par l'API Cloud Translation.
Switch to English

tf.nn.space_to_depth

Tensorflow 1 Version Voir la source sur GitHub

SpaceToDepth pour tenseurs de type T.

Réarrange blocs de données spatiales, en profondeur. Plus précisément, cette op délivre en sortie une copie du tenseur d'entrée , où les valeurs de la height et de width dimensions sont déplacés vers la depth dimension. Le attr block_size indique la taille du bloc d'entrée.

  • Blocs ne se chevauchant pas de taille block_size x block size sont réarrangés en profondeur au niveau de chaque emplacement.
  • La profondeur du tenseur de sortie est block_size * block_size * input_depth .
  • Les Y, coordonnées X au sein de chaque bloc de l'entrée se composant d'ordre élevé de l'indice de canal de sortie.
  • La hauteur du tenseur d'entrée et la largeur doit être divisible par block_size.

Le data_format spécifie attr la mise en page d'entrée et tenseurs sortie avec les options suivantes: « NHWC »: [ batch, height, width, channels ] « NCHW »: [ batch, channels, height, width ] « NCHW_VECT_C »: qint8 [ batch, channels / 4, height, width, 4 ] les qint8 [ batch, channels / 4, height, width, 4 ] la qint8 [ batch, channels / 4, height, width, 4 ] la qint8 [ batch, channels / 4, height, width, 4 ]

Il est utile de considérer l'opération comme la transformation d'un 6-D Tensor. par exemple pour data_format = NHWC, chaque élément dans le tenseur d'entrée peut être spécifiée par l'intermédiaire de 6 coordonnées, commandé en diminuant l'importance de la mise en mémoire en tant que: n, OY, bY, oX, Bx, iC (où n = indice de traitement par lots, OX, OY signifie X ou les coordonnées Y dans l'image de sortie, bx, au moyen des coordonnées à l'intérieur du bloc d'entrée, des moyens iC canaux d'entrée). La sortie serait transposée à la mise en page suivante: n, oy, oX, PAr, Bx, iC

Cette opération est utile pour redimensionner les activations entre les circonvolutions (mais en conservant toutes les données), par exemple au lieu de mise en commun. Il est également utile pour la formation de modèles purement convolutifs.

Par exemple, étant donné une entrée de forme [1, 2, 2, 1] , data_format = "NHWC" et block_size = 2:

 x = [[[[1], [2]],
      [[3], [4]]]]
 

Cette opération de sortie volonté un tenseur de forme [1, 1, 1, 4] :

 [[[[1, 2, 3, 4]]]]
 

Ici, l'entrée a un lot de 1 et chaque élément de charge a la forme [2, 2, 1] , la sortie correspondante aura un seul élément (c. -à- largeur et la hauteur sont tous deux 1) et aura une profondeur de 4 canaux (1 * block_size * block_size). La forme de l' élément de sortie est [1, 1, 4] .

Pour un tenseur d'entrée avec une profondeur plus grande, ici de forme [1, 2, 2, 3] , par exemple ,

 x = [[[[1, 2, 3], [4, 5, 6]],
      [[7, 8, 9], [10, 11, 12]]]]
 

Cette opération, pour block_size de 2, renvoie le tenseur suivante de la forme [1, 1, 1, 12]

 [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
 

De même, pour l'entrée suivante de la forme [1 4 4 1] , et une taille de bloc de 2:

 x = [[[[1],   [2],  [5],  [6]],
      [[3],   [4],  [7],  [8]],
      [[9],  [10], [13],  [14]],
      [[11], [12], [15],  [16]]]]
 

l'opérateur retourne le tenseur suivante de la forme [1 2 2 4] :

 x = [[[[1, 2, 3, 4],
       [5, 6, 7, 8]],
      [[9, 10, 11, 12],
       [13, 14, 15, 16]]]]
 

input Un Tensor .
block_size Un int qui est >= 2 . La taille du bloc spatial.
data_format Une option string à partir de : "NHWC", "NCHW", "NCHW_VECT_C" . La valeur par défaut "NHWC" .
name Un nom pour l'opération (en option).

Un Tensor . A le même type que l' input .