SpaceToDepth pour les tenseurs de type T.
Réorganise les blocs de données spatiales, en profondeur. Plus précisément, cette opération génère une copie du tenseur d'entrée où les valeurs des dimensions « hauteur » et « largeur » sont déplacées vers la dimension « profondeur ». L'attr `block_size` indique la taille du bloc d'entrée.
* Les blocs non chevauchants de taille « block_size x block size » sont réorganisés en profondeur à chaque emplacement. * La profondeur du tenseur de sortie est `block_size * block_size * input_degree`. * Les coordonnées Y, X dans chaque bloc de l'entrée deviennent le composant d'ordre supérieur de l'index du canal de sortie. * La hauteur et la largeur du tenseur d'entrée doivent être divisibles par 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,oY,bY,oX,bX,iC (où n=index du lot, oX, oY signifie X ou coordonnées Y dans l'image de sortie, bX, bY signifie coordonnées dans le bloc d'entrée, iC signifie canaux d'entrée). Le résultat serait une transposition dans la disposition suivante : n,oY,oX,bY,bX,iC
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, 2, 2, 1]`, data_format = "NHWC" et block_size = 2 :
x = [[[[1], [2]],
[[3], [4]]]]
Cette opération produira 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 du lot a la forme « [2, 2, 1] », la sortie correspondante aura un seul élément (c'est-à-dire que la largeur et la hauteur sont toutes deux de 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 plus grande profondeur, 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, renverra le tenseur de forme suivant `[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 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 renverra le tenseur de forme suivant `[1 2 2 4]` : x = [[[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]]]]
Classes imbriquées
classe | EspaceVersProfondeur.Options | Attributs facultatifs pour SpaceToDepth |
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 > SpaceToDepth <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 SpaceToDepth. |
SpaceToDepth.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
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 SpaceToDepth <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 SpaceToDepth.
Paramètres
portée | portée actuelle |
---|---|
Taille du bloc | La taille du bloc spatial. |
choix | porte des valeurs d'attributs facultatifs |
Retours
- une nouvelle instance de SpaceToDepth