TensorScatterAdd

clase final pública TensorScatterAdd

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.compat.v1.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":

indices.shape[-1] <= tensor.shape.rank
 
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
indices.shape[:-1] + tensor.shape[indices.shape[-1]:]
 
La forma más simple de `tensor_scatter_nd_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í:

>>> índices = tf.constant([[4], [3], [1], [7]]) >>> actualizaciones = tf.constant([9, 10, 11, 12]) >>> tensor = tf.ones([8], dtype=tf.int32) >>> actualizado = tf.tensor_scatter_nd_add(tensor, índices, actualizaciones) >>> actualizado

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í:

>>> índices = tf.constant([[0], [2]]) >>> actualizaciones = 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) >>> actualizado. = tf.tensor_scatter_nd_add(tensor, índices, actualizaciones) >>> actualizado

Nota: 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.

Métodos públicos

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

Métodos heredados

Métodos públicos

Salida pública <T> como Salida ()

Devuelve el identificador simbólico de un 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.

TensorScatterAdd <T> estático público crear (alcance del alcance, tensor del operando <T>, índices del operando <U>, actualizaciones del operando <T>)

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

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 TensorScatterAdd

Salida pública <T> salida ()

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