TensorScatterNdSub

classe finale pubblica TensorScatterNdSub

Sottrae gli "aggiornamenti" sparsi da un tensore esistente in base agli "indici".

Questa operazione crea un nuovo tensore sottraendo gli "aggiornamenti" sparsi dal "tensore" passato. Questa operazione è molto simile a `tf.scatter_nd_sub`, tranne per il fatto che gli aggiornamenti vengono sottratti da un tensore esistente (invece che da una variabile). Se la memoria del tensore esistente non può essere riutilizzata, viene creata e aggiornata una copia.

"indices" è un tensore intero contenente indici in un nuovo tensore di forma "shape". L'ultima dimensione degli "indici" può essere al massimo il rango di "forma":

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

L'ultima dimensione di "indices" corrisponde agli indici in elementi (se `indices.shape[-1] = shape.rank`) o sezioni (se `indices.shape[-1] < shape.rank`) lungo la dimensione "indices" .forma[-1]` di `forma`. "aggiornamenti" è un tensore con forma

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

La forma più semplice di tensor_scatter_sub consiste nel sottrarre singoli elementi da un tensore tramite indice. Ad esempio, supponiamo di voler inserire 4 elementi sparsi in un tensore di rango 1 con 8 elementi.

In Python, questa operazione di sottrazione scatter sarebbe simile a questa:

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     tensor = tf.ones([8], dtype=tf.int32)
     updated = tf.tensor_scatter_nd_sub(tensor, indices, updates)
     print(updated)
 
Il tensore risultante sarebbe simile a questo:

[1, -10, 1, -9, -8, 1, 1, -11]

Possiamo anche inserire intere fette di un tensore di rango superiore tutte in una volta. Ad esempio, se volessimo inserire due fette nella prima dimensione di un tensore di rango 3 con due matrici di nuovi valori.

In Python, questa operazione di aggiunta sparsa sarebbe simile a questa:

indices = tf.constant([[0], [2]])
     updates = tf.constant([[[5, 5, 5, 5], [6, 6, 6, 6],
                             [7, 7, 7, 7], [8, 8, 8, 8]],
                            [[5, 5, 5, 5], [6, 6, 6, 6],
                             [7, 7, 7, 7], [8, 8, 8, 8]]])
     tensor = tf.ones([4, 4, 4],dtype=tf.int32)
     updated = tf.tensor_scatter_nd_sub(tensor, indices, updates)
     print(updated)
 
Il tensore risultante sarebbe simile a questo:

[[[-4, -4, -4, -4], [-5, -5, -5, -5], [-6, -6, -6, -6], [-7, -7 , -7, -7]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] , [[-4, -4, -4, -4], [-5, -5, -5, -5], [-6, -6, -6, -6], [-7, -7 , -7, -7]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 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, l'indice viene ignorato.

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 > TensorScatterNdSub <T>
create ( ambito ambito , tensore operando <T>, operando <? estende TNumber > indici, operando <T> aggiornamenti)
Metodo factory per creare una classe che racchiude una nuova operazione TensorScatterNdSub.
Uscita <T>
produzione ()
Un nuovo tensore copiato dal tensore e aggiornamenti sottratti secondo gli indici.

Metodi ereditati

Costanti

Stringa finale statica pubblica OP_NAME

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

Valore costante: "TensorScatterSub"

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 TensorScatterNdSub <T> create ( scope scope, operando <T> tensore, operando <? estende TNumber > indici, operando <T> aggiornamenti)

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

Parametri
scopo ambito attuale
tensore Tensore da copiare/aggiornare.
indici Tensore dell'indice.
aggiornamenti Aggiornamenti da distribuire nell'output.
ritorna
  • una nuova istanza di TensorScatterNdSub

Uscita pubblica <T> uscita ()

Un nuovo tensore copiato dal tensore e aggiornamenti sottratti secondo gli indici.