TensorScatterNdAdd

Clase public final TensorScatterNdAdd

Agrega "actualizaciones" escasas a un tensor existente según los "índices".

Esta operación crea un nuevo tensor agregando "actualizaciones" dispersas al "tensor" pasado. Esta operación es muy similar a `tf.scatter_nd_add`, excepto que las actualizaciones se agregan a un tensor existente (a diferencia de una variable). Si la memoria del tensor existente no se puede reutilizar, se realiza una copia y se actualiza.

`indices` es un tensor entero que contiene índices en un nuevo tensor de forma` tensor.shape`. La última dimensión de `índices` puede ser como máximo el rango de` tensor.shape`:

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

La última dimensión de `índices` corresponde a índices en elementos (si` indices.shape [-1] = tensor.shape.rank`) o rebanadas (si `indices.shape [-1] <tensor.shape.rank`) a lo largo de la dimensión `indices.shape [-1]` de `tensor.shape`. `updates` es un tensor con forma

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

La forma más simple de tensor_scatter_add es agregar elementos individuales a un tensor por índice. Por ejemplo, digamos que queremos agregar 4 elementos en un tensor de rango 1 con 8 elementos.

En Python, esta operación de dispersión complemento se vería así:

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_add(tensor, indices, updates)
     print(updated)
 
El tensor resultante sería el siguiente:

[1, 12, 1, 11, 10, 1, 1, 13]

También podemos insertar secciones enteras de un tensor de rango superior de una vez. Por ejemplo, si quisiéramos insertar dos cortes en la primera dimensión de un tensor de rango 3 con dos matrices de nuevos valores.

En Python, esta operación de dispersión complemento se vería así:

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_add(tensor, indices, updates)
     print(updated)
 
El tensor resultante sería el siguiente:

[[[6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8], [9, 9, 9, 9]], [[1, 1, 1 , 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[6, 6, 6, 6], [7, 7 , 7, 7], [8, 8, 8, 8], [9, 9, 9, 9]], [[1, 1, 1, 1], [1, 1, 1, 1], [1 , 1, 1, 1], [1, 1, 1, 1]]]

Tenga en cuenta que en la CPU, si se encuentra un índice fuera del límite, se devuelve un error. En GPU, si se encuentra un índice fuera del límite, el índice se ignora.

Constantes

Cuerda OP_NAME El nombre de esta operación, como lo conoce el motor central de TensorFlow

Métodos públicos

Salida <T>
asOutput ()
Devuelve el identificador simbólico del tensor.
estática <T se extiende Ttype > TensorScatterNdAdd <T>
crear ( Alcance alcance, operando <T> tensor, operando <? extiende TNumber > índices, operando <T> actualizaciones)
Método de fábrica para crear una clase que envuelva una nueva operación TensorScatterNdAdd.
Salida <T>
salida ()
Se copió un nuevo tensor del tensor y se agregaron actualizaciones de acuerdo con los índices.

Métodos heredados

Constantes

OP_NAME pública final static String

El nombre de esta operación, como lo conoce el motor central de TensorFlow

Valor constante: "TensorScatterAdd"

Métodos públicos

pública de salida <T> asOutput ()

Devuelve el identificador simbólico del tensor.

Las entradas a las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.

public static TensorScatterNdAdd <T> crear ( Alcance alcance, operando <T> tensor, operando <? extiende TNumber > índices, operando <T> actualizaciones)

Método de fábrica para crear una clase que envuelva una nueva operación TensorScatterNdAdd.

Parámetros
alcance alcance actual
tensor Tensor para copiar / actualizar.
índices Tensor de índice.
actualizaciones Actualizaciones para dispersar en la salida.
Devoluciones
  • una nueva instancia de TensorScatterNdAdd

pública de salida <T> salida ()

Se copió un nuevo tensor del tensor y se agregaron actualizaciones de acuerdo con los índices.