Stosuje rzadkie dodawanie do „wejściowych” przy użyciu pojedynczych wartości lub wycinków
z `aktualizacji` według indeksów `indeksy`. Aktualizacje nie są aliasingowe: „input” jest modyfikowany lokalnie tylko wtedy, gdy nie będą używane żadne inne operacje. W przeciwnym razie tworzona jest kopia „input”. Ta operacja ma gradient zarówno w odniesieniu do „wejść”, jak i „aktualizacji”.
„wejściowe” to „tensor” o randze „P”, a „indeksy” to „tensor” o randze „Q”.
„indeksy” muszą być tensorami całkowitymi, zawierającymi indeksy na „wejściach”. Musi mieć kształt \\([d_0, ..., d_{Q-2}, K]\\) gdzie `0 < K <= P`.
Najbardziej wewnętrzny wymiar „indeksów” (o długości „K”) odpowiada indeksom na elementy (jeśli „K = P”) lub „(PK)”-wymiarowe plasterki (jeśli „K < P”) wzdłuż „K” wymiar „wejściowego”.
`updates` to `Tensor` rangi `Q-1+PK` o kształcie:
$$[d_0, ..., d_{Q-2}, input.shape[K], ..., input.shape[P-1]].$$
Załóżmy na przykład, że chcemy dodać 4 rozproszone elementy do tensora rangi 1 do 8 elementów. W Pythonie dodatek ten będzie wyglądał następująco:
wejście = tf.constant([1, 2, 3, 4, 5, 6, 7, 8]) indeksy = tf.constant([[4], [3], [1], [7]]) aktualizacje = tf.constant([9, 10, 11, 12]) wyjście = tf.scatter_nd_non_aliasing_add(wejście, indeksy, aktualizacje) z tf.Session() jako sess: print(sess.run(wyjście))
Wynikowa wartość „wyjście” będzie wyglądać następująco:
[1, 13, 3, 14, 14, 6, 7, 20]
Zobacz tf.scatter_nd
, aby uzyskać więcej szczegółów na temat aktualizowania plasterków.
Metody publiczne
Wyjście <T> | jako wyjście () Zwraca symboliczny uchwyt tensora. |
statyczny <T, U rozszerza numer> ScatterNdNonAliasingAdd <T> | utwórz (zakres zakresu , dane wejściowe argumentu <T>, indeksy argumentu <U>, aktualizacje argumentu <T>) Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację ScatterNdNonAliasingAdd. |
Wyjście <T> | wyjście () `Tensor` o tym samym kształcie co `input`, zawierający wartości `input` aktualizowane za pomocą `updates`. |
Metody dziedziczone
Metody publiczne
publiczne wyjście <T> asOutput ()
Zwraca symboliczny uchwyt tensora.
Dane wejściowe operacji TensorFlow są wynikami innej operacji TensorFlow. Ta metoda służy do uzyskania symbolicznego uchwytu reprezentującego obliczenia danych wejściowych.
public static ScatterNdNonAliasingAdd <T> create (zakres zakresu , dane wejściowe argumentu <T>, indeksy argumentu <U>, aktualizacje argumentu <T>)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację ScatterNdNonAliasingAdd.
Parametry
zakres | aktualny zakres |
---|---|
wejście | Tensor. |
indeksy | Tensor. Musi to być jeden z następujących typów: `int32`, `int64`. Tensor indeksów na wejściu. |
aktualizacje | Tensor. Musi mieć ten sam typ co ref. Tensor zaktualizowanych wartości do dodania do „wejściowego”. |
Powroty
- nowa instancja ScatterNdNonAliasingAdd
publiczne wyjście <T> wyjście ()
`Tensor` o tym samym kształcie co `input`, zawierający wartości `input` aktualizowane za pomocą `updates`.