個々の値またはスライスを使用して「input」にスパース加算を適用します
インデックス「インデックス」に従って「更新」から。更新は非エイリアシングです。「input」は、他の操作で使用されない場合にのみその場で変更されます。それ以外の場合は、「input」のコピーが作成されます。この操作には、「入力」と「更新」の両方に関して勾配があります。
「input」はランク「P」の「Tensor」であり、「indexes」はランク「Q」の「Tensor」です。
`indices` は、`input` へのインデックスを含む整数テンソルでなければなりません。これは、`0 < K <= P` の形状 \\([d_0, ..., d_{Q-2}, K]\\) である必要があります。
「インデックス」の最も内側の次元 (長さ「K」) は、要素へのインデックス (「K = P」の場合) または「K」番目に沿った「(PK)」次元のスライス (「K < P」の場合) に対応します。 「入力」の次元。
「updates」は、次の形状を持つランク「Q-1+PK」の「Tensor」です。
たとえば、8 要素のランク 1 テンソルに 4 つの散在要素を追加したいとします。 Python では、この追加は次のようになります。
入力 = tf.constant([1, 2, 3, 4, 5, 6, 7, 8]) インデックス = tf.constant([[4], [3], [1], [7]]) 更新 = tf.constant([9, 10, 11, 12]) 出力 = tf.scatter_nd_non_aliasing_add(input, indices, updated) tf.Session() を sess として使用: print(sess.run(output))
結果の値「output」は次のようになります。
[1、13、3、14、14、6、7、20]
スライスを更新する方法の詳細については、「tf.scatter_nd」を参照してください。
パブリックメソッド
出力<T> | asOutput () テンソルのシンボリック ハンドルを返します。 |
static <T, U extends Number> ScatterNdNonAliasingAdd <T> | |
出力<T> | 出力() 「input」と同じ形状の「Tensor」。「updates」で更新された「input」の値が含まれます。 |
継承されたメソッド
パブリックメソッド
public Output <T> asOutput ()
テンソルのシンボリック ハンドルを返します。
TensorFlow オペレーションへの入力は、別の TensorFlow オペレーションの出力です。このメソッドは、入力の計算を表すシンボリック ハンドルを取得するために使用されます。
public static ScatterNdNonAliasingAdd <T> create (スコープスコープ、オペランド<T> 入力、オペランド<U> インデックス、オペランド<T> 更新)
新しい ScatterNdNonAliasingAdd 操作をラップするクラスを作成するファクトリ メソッド。
パラメーター
範囲 | 現在のスコープ |
---|---|
入力 | テンソル。 |
インデックス | テンソル。次のタイプのいずれかである必要があります: `int32`、`int64`。 「input」へのインデックスのテンソル。 |
アップデート | テンソル。 ref と同じ型でなければなりません。 「input」に追加する更新された値のテンソル。 |
戻り値
- ScatterNdNonAliasingAdd の新しいインスタンス