TensorScatterNdAdd

clase final pública TensorScatterNdAdd

Agrega "actualizaciones" dispersas a un tensor existente según "í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 (en lugar 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 los "índices" puede ser como máximo el rango de "tensor.shape":

índices.forma[-1] <= tensor.forma.rango

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

índices.forma[:-1] + tensor.forma[índices.forma[-1]:]

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

En Python, esta operación de adición de dispersión 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 se vería así:

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

También podemos insertar porciones enteras de un tensor de rango superior a la 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 adición de dispersión 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 se vería así:

[[[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 de límite, se devuelve un error. En GPU, si se encuentra un índice fuera de límite, se ignora el índice.

Constantes

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

Métodos públicos

Salida <T>
como salida ()
Devuelve el identificador simbólico del tensor.
estático <T extiende TType > TensorScatterNdAdd <T>
crear (alcance alcance , tensor operando <T>, operando <? extiende TNumber > índices, actualizaciones operando <T>)
Método de fábrica para crear una clase que envuelve una nueva operación TensorScatterNdAdd.
Salida <T>
producción ()
Un nuevo tensor copiado del tensor y se agregan actualizaciones según los índices.

Métodos heredados

Constantes

Cadena final estática pública OP_NAME

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

Valor constante: "TensorScatterAdd"

Métodos públicos

Salida pública <T> como Salida ()

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> create (alcance del alcance , tensor del operando <T>, operando <? extiende los índices TNumber >, actualizaciones del operando <T>)

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

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

Salida pública <T> salida ()

Un nuevo tensor copiado del tensor y se agregan actualizaciones según los índices.