Agrega `actualizaciones` dispersas a un tensor existente según `índices`.
Esta operación crea un nuevo tensor agregando "actualizaciones" escasas 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 (a diferencia de una variable). Si la memoria del tensor existente no se puede reutilizar, se hace una copia y se actualiza.
`índices` es un tensor entero que contiene índices en un nuevo tensor de forma `tensor.shape`. La última dimensión de `índices` puede tener 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 porciones (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_nd_add` es agregar elementos individuales a un tensor por índice. Por ejemplo, supongamos 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.constante([[4], [3], [1], [7]]) >>> actualizaciones = tf.constante([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 rebanadas enteras de un tensor de mayor rango 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.constante([[0], [2]]) >>> actualizaciones = tf.constante([[[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> | |
Salida <T> | salida () Un nuevo tensor copiado de tensor y actualizaciones añadidas 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 de 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 TensorScatterAdd <T> create ( Scope scope, Operando <T> tensor, Operando <U> índices, Operando <T> actualizaciones)
Método de fábrica para crear una clase que envuelve una nueva operación TensorScatterAdd.
Parámetros
alcance | alcance actual |
---|---|
tensor | Tensor para copiar/actualizar. |
índices | Tensor índice. |
actualizaciones | Actualizaciones para dispersarse en la salida. |
Devoluciones
- una nueva instancia de TensorScatterAdd
salida pública <T> salida ()
Un nuevo tensor copiado de tensor y actualizaciones añadidas según los índices.