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']]
 
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`.

Méthodes publiques

Sortie <T>
comme Sortie ()
Renvoie le handle symbolique d'un tenseur.
statique <T, U étend le nombre> GatherNd <T>
créer (portée de portée , paramètres d'opérande <T>, indices d'opérande <U>)
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

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 GatherNd <T> create (portée de portée , paramètres d'opérande <T>, indices d'opérande <U>)

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]:]`.