GatherNd

lezione finale pubblica GatherNd

Raccogli le sezioni da "params" in un tensore con la forma specificata da "indices".

"indices" è un tensore intero K-dimensionale, meglio pensato come un tensore di indici (K-1)-dimensionale in "params", dove ciascun elemento definisce una fetta di "params":

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

Mentre in tf.gather `indices` definisce le sezioni nella dimensione `axis` di `params`, in tf.gather_nd , `indices` definisce le sezioni nelle prime `N` dimensioni di `params`, dove `N = indices.shape [-1]`.

L'ultima dimensione di "indices" può avere al massimo il rango di "params":

indici.forma[-1] <= params.rango

L'ultima dimensione di "indices" corrisponde agli elementi (se `indices.shape[-1] == params.rank`) o alle sezioni (se `indices.shape[-1] < params.rank`) lungo la dimensione "indices". forma[-1]` di `params`. Il tensore di uscita ha forma

indici.forma[:-1] + params.forma[indice.forma[-1]:]

Si noti che sulla CPU, se viene trovato un indice fuori limite, viene restituito un errore. Sulla GPU, se viene trovato un indice fuori limite, viene archiviato uno 0 nel valore di output corrispondente.

Di seguito alcuni esempi.

Indicizzazione semplice in una matrice:

indices = [[0, 0], [1, 1]]
     params = [['a', 'b'], ['c', 'd']]
     output = ['a', 'd']
 
Indicizzazione in slice in una matrice:
indices = [[1], [0]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['c', 'd'], ['a', 'b']]
 
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']
 
Indicizzazione in batch in una matrice:
indices = [[[0, 0]], [[0, 1]]]
     params = [['a', 'b'], ['c', 'd']]
     output = [['a'], ['b']]
 
Indicizzazione in batch in una matrice:
indices = [[[1]], [[0]]]
     params = [['a', 'b'], ['c', 'd']]
     output = [[['c', 'd']], [['a', 'b']]]
 
Indicizzazione in batch in a 3-tensore:
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']]
 
Vedi anche tf.gather e `tf.batch_gather`.

Costanti

Corda OP_NAME Il nome di questa operazione, come noto al motore principale di TensorFlow

Metodi pubblici

Uscita <T>
comeuscita ()
Restituisce l'handle simbolico del tensore.
statico <T estende TType > GatherNd <T>
create ( ambito ambito , parametri operando <T>, operando <? estende TNumber > indici)
Metodo factory per creare una classe che racchiude una nuova operazione GatherNd.
Uscita <T>
produzione ()
Valori da `params` raccolti dagli indici forniti da `indices`, con forma `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.

Metodi ereditati

Costanti

Stringa finale statica pubblica OP_NAME

Il nome di questa operazione, come noto al motore principale di TensorFlow

Valore costante: "GatherNd"

Metodi pubblici

Uscita pubblica <T> asOutput ()

Restituisce l'handle simbolico del tensore.

Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.

public static GatherNd <T> create ( ambito ambito , parametri operando <T>, operando <? estende TNumber > indici)

Metodo factory per creare una classe che racchiude una nuova operazione GatherNd.

Parametri
scopo ambito attuale
parametri Il tensore da cui raccogliere valori.
indici Tensore dell'indice.
ritorna
  • una nuova istanza di GatherNd

Uscita pubblica <T> uscita ()

Valori da `params` raccolti dagli indici forniti da `indices`, con forma `indices.shape[:-1] + params.shape[indices.shape[-1]:]`.