Aviso: esta API está obsoleta e será removida em uma versão futura do TensorFlow depois que a substituição estiver estável.

ScatterNd

classe final pública ScatterNd

Espalhe `updates` em um novo tensor de acordo com` índices`.

Cria um novo tensor aplicando `atualizações` esparsas a valores individuais ou fatias dentro de um tensor (inicialmente zero para numérico, vazio para string) da` forma` fornecida de acordo com os índices. Este operador é o inverso do operador `tf.gather_nd` que extrai valores ou fatias de um determinado tensor.

Esta operação é semelhante a tensor_scatter_add, exceto que o tensor é inicializado com zero. Chamar `tf.scatter_nd (índices, valores, forma)` é idêntico a `tensor_scatter_add (tf.zeros (forma, valores.dtype), índices, valores)`

Se `índices` contém duplicatas, então suas atualizações são acumuladas (somadas).

AVISO : A ordem em que as atualizações são aplicadas não é determinística, então a saída será não determinística se `índices` contiver duplicatas - por causa de alguns problemas de aproximação numérica, números somados em ordem diferente podem produzir resultados diferentes.

`índices` é um tensor inteiro contendo índices em um novo tensor de forma` forma`. A última dimensão de `índices` pode ser no máximo a classificação de` forma`:

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

A última dimensão de `índices` corresponde a índices em elementos (se` índices.shape [-1] = forma.rank`) ou fatias (se `índices.shape [-1] <forma.rank`) ao longo de índices de dimensão .shape [-1] `de` forma`. `updates` é um tensor com forma

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

A forma mais simples de dispersão é inserir elementos individuais em um tensor por índice. Por exemplo, digamos que queremos inserir 4 elementos dispersos em um tensor de classificação 1 com 8 elementos.

Em Python, essa operação de dispersão seria assim:

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)
 
O tensor resultante seria assim:

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

Também podemos inserir fatias inteiras de um tensor de classificação superior de uma vez. Por exemplo, se quisermos inserir duas fatias na primeira dimensão de um tensor de classificação 3 com duas matrizes de novos valores.

Em Python, essa operação de dispersão ficaria assim:

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)
 
O tensor resultante ficaria assim:

[[[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]]]

Observe que, na CPU, se um índice fora do limite for encontrado, um erro será retornado. Na GPU, se um índice fora do limite for encontrado, o índice será ignorado.

Métodos Públicos

Saída <U>
asOutput ()
Retorna o identificador simbólico de um tensor.
static <U, T extends Number> ScatterNd <U>
criar ( escopo de escopo, índices de operando <T>, atualizações de operando <U>, forma de operando <T>)
Método de fábrica para criar uma classe envolvendo uma nova operação ScatterNd.
Saída <U>
saída ()
Um novo tensor com a forma dada e atualizações aplicadas de acordo com os índices.

Métodos herdados

Métodos Públicos

public Output <U> asOutput ()

Retorna o identificador simbólico de um tensor.

As entradas para as operações do TensorFlow são saídas de outra operação do TensorFlow. Este método é usado para obter um identificador simbólico que representa o cálculo da entrada.

public static ScatterNd <U> create ( escopo do escopo, índices do operando <T>, atualizações do operando <U>, forma do operando <T>)

Método de fábrica para criar uma classe envolvendo uma nova operação ScatterNd.

Parâmetros
alcance escopo atual
índices Tensor de índice.
atualizações Atualizações para espalhar na saída.
forma 1-D. A forma do tensor resultante.
Devoluções
  • uma nova instância de ScatterNd

Saída pública <U> saída ()

Um novo tensor com a forma dada e atualizações aplicadas de acordo com os índices.