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.

Constantes

Chaîne OP_NAME Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Méthodes publiques

Sortie <T>
comme Sortie ()
Renvoie le handle symbolique du tenseur.
statique <T étend TType > BatchToSpaceNd <T>
créer ( Portée de la portée , Entrée Opérande <T>, Opérande <? étend TNumber > blockShape, Opérande <? étend TNumber > cultures)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération BatchToSpaceNd.
Sortie <T>
sortir ()

Méthodes héritées

Constantes

chaîne finale statique publique OP_NAME

Le nom de cette opération, tel que connu par le moteur principal TensorFlow

Valeur constante : "BatchToSpaceND"

Méthodes publiques

sortie publique <T> asOutput ()

Renvoie le handle symbolique du 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 opérande <T>, opérande <? étend TNumber > blockShape, opérande <? étend TNumber > cultures)

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 ()