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ée i + 1 , qui correspond à la dimension spatiale i . Il est nécessaire que crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1] .

Cette opération équivaut aux étapes suivantes:

  1. Remodeler l' input pour reshaped forme: [block_shape [0], ..., block_shape [M-1], batch / prod (block_shape), input_shape [1], ..., input_shape [N-1]]
  2. Permute les dimensions de reshaped pour produire une 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]]
  3. Remodeler permuted pour produire reshaped_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]]
  4. Recadrez le début et la fin des dimensions [1, ..., M] de reshaped_permuted selon les crops 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