BatchToSpaceNd

classe finale publique BatchToSpaceNd

BatchToSpace pour les tenseurs ND de type T.

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 de même rang que l’entrée. Les dimensions spatiales de ce résultat intermédiaire sont ensuite éventuellement recadrées en fonction des « recadrages » pour produire le résultat. C'est l'inverse de SpaceToBatch. Voir ci-dessous pour une description précise.

Méthodes publiques

Sortie <T>
comme Sortie ()
Renvoie le handle symbolique d'un tenseur.
statique <T, U étend le nombre, V étend le nombre> BatchToSpaceNd <T>
créer (portée de portée , entrée d'opérande <T>, forme de bloc d' opérande <U>, cultures d'opérande <V>)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération BatchToSpaceNd.
Sortie <T>
sortir ()

Méthodes héritées

Méthodes publiques

sortie publique <T> asOutput ()

Renvoie le handle symbolique d'un tenseur.

Les entrées des opérations TensorFlow sont les sorties d'une autre opération TensorFlow. Cette méthode est utilisée pour obtenir un handle symbolique qui représente le calcul de l’entrée.

public static BatchToSpaceNd <T> créer (portée de portée , entrée d'opérande <T>, forme de bloc d' opérande <U>, cultures d'opérande <V>)

Méthode d'usine pour créer une classe encapsulant une nouvelle opération BatchToSpaceNd.

Paramètres
portée portée actuelle
saisir ND avec la forme `input_shape = [batch] + spatial_shape + left_shape`, où spatial_shape a M dimensions.
forme de bloc 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ée `i + 1`, qui correspond à dimension spatiale `i`. Il est requis que `crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]`.

Cette opération équivaut aux étapes suivantes :

1. Remodeler `input` en `reshape` de forme : [block_shape[0], ..., block_shape[M-1], batch / prod(block_shape), input_shape[1], ..., input_shape[N- 1]]

2. Permutez les dimensions de « remodelé » pour produire une forme « permutée » [batch / prod(block_shape),

input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1],

forme_entrée[M+1], ..., forme_entrée[N-1]]

3. Remodeler `permuted` pour produire `reshape_permuted` de forme [batch / prod(block_shape),

input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1],

forme_entrée[M+1], ..., forme_entrée[N-1]]

4. Recadrez le début et la fin des dimensions `[1, ..., M]` de `reshape_permuted` selon `crops` pour produire la sortie de forme : [batch / prod(block_shape),

input_shape[1] * block_shape[0] - cultures[0,0] - cultures[0,1], ..., input_shape[M] * block_shape[M-1] - cultures[M-1,0] - cultures [M-1,1],

forme_entrée[M+1], ..., forme_entrée[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]]]]
 

Retour
  • une nouvelle instance de BatchToSpaceNd

sortie publique <T> sortie ()