ScatterNd

clase final pública ScatterNd

Dispersión de 'actualizaciones' en un nuevo tensor según 'índices'.

Crea un nuevo tensor aplicando "actualizaciones" escasas a valores individuales o segmentos dentro de un tensor (inicialmente cero para numérico, vacío para cadena) de la "forma" dada según los índices. Este operador es el inverso del operador `tf.gather_nd` que extrae valores o segmentos de un tensor dado.

Esta operación es similar a tensor_scatter_add, excepto que el tensor se inicializa en cero. Llamar a `tf.scatter_nd(índices, valores, forma)` es idéntico a `tensor_scatter_add(tf.zeros(forma, valores.dtipo), índices, valores)`

Si los `índices` contienen duplicados, sus actualizaciones se acumulan (se suman).

ADVERTENCIA : el orden en que se aplican las actualizaciones no es determinista, por lo que la salida no será determinista si los "índices" contienen duplicados; debido a algunos problemas de aproximación numérica, los números sumados en un orden diferente pueden generar resultados diferentes.

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

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

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

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

La forma más simple de dispersión es insertar elementos individuales en un tensor por índice. Por ejemplo, digamos que queremos insertar 4 elementos dispersos en un tensor de rango 1 con 8 elementos.

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

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     shape = tf.constant([8])
     scatter = tf.scatter_nd(indices, updates, shape)
     print(scatter)
 
El tensor resultante se vería así:

[0, 11, 0, 10, 9, 0, 0, 12]

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 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]]])
     shape = tf.constant([4, 4, 4])
     scatter = tf.scatter_nd(indices, updates, shape)
     print(scatter)
 
El tensor resultante se vería así:

[[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], [[0, 0, 0 , 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[5, 5, 5, 5], [6, 6 , 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], [[0, 0, 0, 0], [0, 0, 0, 0], [0 , 0, 0, 0], [0, 0, 0, 0]]]

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.

Métodos públicos

Salida <U>
como salida ()
Devuelve el identificador simbólico de un tensor.
estático <U, T extiende Número> ScatterNd <U>
crear ( ámbito de ámbito, índices de operando <T>, actualizaciones de operando <U>, forma de operando <T>)
Método de fábrica para crear una clase que envuelve una nueva operación ScatterNd.
Salida <U>
salida ()
Un nuevo tensor con la forma dada y actualizaciones aplicadas según los índices.

Métodos Heredados

Métodos públicos

Salida pública <U> 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 ScatterNd <U> create ( alcance del alcance, índices del operando <T>, actualizaciones del operando <U>, forma del operando <T>)

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

Parámetros
alcance alcance actual
índices Tensor índice.
actualizaciones Actualizaciones para dispersarse en la salida.
forma 1-D. La forma del tensor resultante.
Devoluciones
  • una nueva instancia de ScatterNd

Salida pública <U> salida ()

Un nuevo tensor con la forma dada y actualizaciones aplicadas según los índices.