GatherNd

classe finale publique GatherNd

Rassemblez les tranches de « params » dans un Tensor avec une forme spécifiée par « indices ».

`indices` est un tenseur entier à K dimensions, mieux considéré comme un tenseur d'indices à dimensions (K-1) dans `params`, où chaque élément définit une tranche de `params` :

sortie[\\(i_0, ..., i_{K-2}\\)] = params[indices[\\(i_0, ..., i_{K-2}\\)]]

Alors que dans tf.gather `indices` définit des tranches dans la dimension `axis` de `params`, dans tf.gather_nd , `indices` définit des tranches dans les premières `N` dimensions de `params`, où `N = indices.shape [-1]`.

La dernière dimension des « indices » peut être au plus le rang de « params » :

indices.shape[-1] <= params.rank

La dernière dimension des `indices` correspond aux éléments (si `indices.shape[-1] == params.rank`) ou aux tranches (si `indices.shape[-1] < params.rank`) le long de la dimension `indices. shape[-1]` de `params`. Le tenseur de sortie a la forme

indices.shape[:-1] + params.shape[indices.shape[-1]:]

Notez que sur le CPU, si un index hors limite est trouvé, une erreur est renvoyée. Sur GPU, si un index hors limite est trouvé, un 0 est stocké dans la valeur de sortie correspondante.

Quelques exemples ci-dessous.

Indexation simple dans une matrice :

indices = [[0, 0], [1, 1]]
     params = [['a', 'b'], ['c', 'd']]
     output = ['a', 'd']
 
Indexation par tranches dans une matrice :
indices = [[1], [0]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['c', 'd'], ['a', 'b']]
 
placeholder4 Indexation dans un 3-tenseurs :
indices = [[1]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [[['a1', 'b1'], ['c1', 'd1']]]
 
 
     indices = [[0, 1], [1, 0]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [['c0', 'd0'], ['a1', 'b1']]
 
 
     indices = [[0, 0, 1], [1, 0, 1]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = ['b0', 'b1']
 
Indexation par lots dans une matrice :
indices = [[[0, 0]], [[0, 1]]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['a'], ['b']]
 
Indexation par tranches par lots dans une matrice :
indices = [[[1]], [[0]]]
     params = [['a', 'b'], ['c', 'd']]
     output = [[['c', 'd']], [['a', 'b']]]
 
Indexation par lots dans un 3-tenseur :
indices = [[[1]], [[0]]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [[[['a1', 'b1'], ['c1', 'd1']]],
               [[['a0', 'b0'], ['c0', 'd0']]]]
 
     indices = [[[0, 1], [1, 0]], [[0, 0], [1, 1]]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [[['c0', 'd0'], ['a1', 'b1']],
               [['a0', 'b0'], ['c1', 'd1']]]
 
 
     indices = [[[0, 0, 1], [1, 0, 1]], [[0, 1, 1], [1, 1, 0]]]
     params = [[['a0', 'b0'], ['c0', 'd0']],
               [['a1', 'b1'], ['c1', 'd1']]]
     output = [['b0', 'b1'], ['d0', 'c1']]
 
Voir aussi tf.gather et `tf.batch_gather`.

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 > GatherNd <T>
créer ( Portée de la portée , Paramètres de l'Opérande <T>, Opérande <? étend TNumber > indices)
Méthode d'usine pour créer une classe encapsulant une nouvelle opération GatherNd.
Sortie <T>
sortir ()
Valeurs de `params` collectées à partir des indices donnés par `indices`, avec la forme `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.

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 : "GatherNd"

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 GatherNd <T> create ( Scope scope, Operand <T> paramètres, Operand <? extends TNumber > indices)

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

Paramètres
portée portée actuelle
paramètres Tenseur à partir duquel collecter les valeurs.
indices Tenseur d'indice.
Retour
  • une nouvelle instance de GatherNd

sortie publique <T> sortie ()

Valeurs de `params` collectées à partir des indices donnés par `indices`, avec la forme `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.