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