DepthToSpace

classe finale publique DepthToSpace

DepthToSpace pour les tenseurs de type T.

Réorganise les données de la profondeur en blocs de données spatiales. Il s'agit de la transformation inverse de SpaceToDepth. Plus précisément, cette opération génère une copie du tenseur d'entrée où les valeurs de la dimension « profondeur » sont déplacées dans des blocs spatiaux vers les dimensions « hauteur » et « largeur ». L'attr `block_size` indique la taille du bloc d'entrée et la manière dont les données sont déplacées.

* Des morceaux de données de taille `block_size * block_size` à partir de la profondeur sont réorganisés en blocs non chevauchants de taille `block_size x block_size` * La largeur du tenseur de sortie est `input_degree * block_size`, alors que la hauteur est `input_height * block_size`. * Les coordonnées Y, X dans chaque bloc de l'image de sortie sont déterminées par la composante d'ordre supérieur de l'index du canal d'entrée. * La profondeur du tenseur d'entrée doit être divisible par `block_size * block_size`.

L'attr `data_format` spécifie la disposition des tenseurs d'entrée et de sortie avec les options suivantes : "NHWC": `[ lot, hauteur, largeur, canaux ]` "NCHW": `[ lot, canaux, hauteur, largeur ]` " NCHW_VECT_C": `qint8 [ lot, canaux / 4, hauteur, largeur, 4 ]`

Il est utile de considérer l'opération comme une transformation d'un tenseur 6-D. Par exemple, pour data_format = NHWC, chaque élément du tenseur d'entrée peut être spécifié via 6 coordonnées, classées par importance décroissante de la disposition de la mémoire comme : n,iY,iX,bY,bX,oC (où n=index du lot, iX, iY signifie X ou coordonnées Y dans l'image d'entrée, bX, bY signifie coordonnées dans le bloc de sortie, oC signifie canaux de sortie). La sortie serait l'entrée transposée dans la disposition suivante : n,iY,bY,iX,bX,oC

Cette opération est utile pour redimensionner les activations entre convolutions (mais en conservant toutes les données), par exemple au lieu de les regrouper. Il est également utile pour former des modèles purement convolutifs.

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

x = [[[[1, 2, 3, 4]]]]
 
 
Cette opération produira un tenseur de forme `[1, 2, 2, 1]` :
[[[[1], [2]],
      [[3], [4]]]]
 
Ici, l'entrée a un lot de 1 et chaque élément du lot a la forme `[1, 1, 4]`, la sortie correspondante aura 2x2 éléments et aura une profondeur de 1 canal (1 = `4 / (block_size * block_size )`). La forme de l'élément de sortie est « [2, 2, 1] ».

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

x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
 
Cette opération, pour une taille de bloc de 2, renverra le tenseur de forme suivant `[1, 2, 2, 3]`
[[[[1, 2, 3], [4, 5, 6]],
      [[7, 8, 9], [10, 11, 12]]]]
 
 
De même, pour l'entrée suivante de forme `[1 2 2 4]` et une taille de bloc de 2 :
x =  [[[[1, 2, 3, 4],
        [5, 6, 7, 8]],
       [[9, 10, 11, 12],
        [13, 14, 15, 16]]]]
 
l'opérateur renverra le tenseur de forme suivant `[1 4 4 1]` :
x = [[[ [1],   [2],  [5],  [6]],
       [ [3],   [4],  [7],  [8]],
       [ [9],  [10], [13],  [14]],
       [ [11], [12], [15],  [16]]]]
 
 

Classes imbriquées

classe ProfondeurVersEspace.Options Attributs facultatifs pour DepthToSpace

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 > DepthToSpace <T>
créer (portée de la portée, entrée de l'opérande <T>, options Long blockSize, Options... )
Méthode d'usine pour créer une classe encapsulant une nouvelle opération DepthToSpace.
DepthToSpace.Options statique
dataFormat (Chaîne dataFormat)
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 : "ProfondeurVersEspace"

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 DepthToSpace <T> créer (portée de portée, entrée d'opérande <T>, taille de bloc longue, options... options)

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

Paramètres
portée portée actuelle
Taille du bloc La taille du bloc spatial, identique à celle de Space2Depth.
choix porte des valeurs d'attributs facultatifs
Retours
  • une nouvelle instance de DepthToSpace

public statique DepthToSpace.Options dataFormat (String dataFormat)

sortie publique <T> sortie ()