Menyebarkan `pembaruan` ke dalam tensor bentuk `bentuk` menurut `indeks`.
Menyebarkan `pembaruan` jarang sesuai dengan nilai individual pada `indeks` yang ditentukan. Operasi ini mengembalikan tensor keluaran dengan `bentuk` yang Anda tentukan. Operasi ini adalah kebalikan dari operator tf.gather_nd
yang mengekstrak nilai atau irisan dari tensor tertentu.
Operasi ini mirip dengan tf.tensor_scatter_nd_add
, kecuali tensornya diinisialisasi nol. Memanggil tf.scatter_nd(indices, updates, shape)
identik dengan memanggil `tf.tensor_scatter_nd_add(tf.zeros(shape, updates.dtype), indices, updates)`
Jika `indeks` berisi duplikat, `pembaruan` terkait diakumulasikan (dijumlahkan) ke dalam tensor keluaran.
PERINGATAN : Untuk tipe data floating-point, output mungkin nondeterministik. Ini karena urutan penerapan pembaruan bersifat nondeterministik dan ketika angka titik-mengambang ditambahkan dalam urutan yang berbeda, kesalahan perkiraan numerik yang dihasilkan dapat sedikit berbeda. Namun, output akan deterministik jika op determinisme diaktifkan melalui tf.config.experimental.enable_op_determinism
.
`indeks` adalah tensor bilangan bulat yang berisi indeks ke dalam tensor keluaran. Dimensi terakhir dari `indeks` paling banyak dapat berupa peringkat `bentuk`:
index.shape[-1] <= shape.rank
Dimensi terakhir dari `indices` sesuai dengan indeks elemen (jika `indices.shape[-1] = shape.rank`) atau irisan (jika `indices.shape[-1] < shape.rank`) di sepanjang dimensi `indices .bentuk[-1]` dari `bentuk`.
`updates` adalah tensor dengan bentuk:
indices.shape[:-1] + shape[indices.shape[-1]:]
Bentuk paling sederhana dari operasi pencar adalah menyisipkan elemen individual dalam tensor berdasarkan indeks. Pertimbangkan contoh di mana Anda ingin menyisipkan 4 elemen yang tersebar dalam tensor peringkat-1 dengan 8 elemen.

Dengan Python, operasi pencar ini akan terlihat seperti ini:
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)
Tensor yang dihasilkan akan terlihat seperti ini:[0, 11, 0, 10, 9, 0, 0, 12]
Anda juga dapat menyisipkan seluruh irisan tensor peringkat yang lebih tinggi sekaligus. Misalnya, Anda dapat menyisipkan dua irisan dalam dimensi pertama tensor peringkat-3 dengan dua matriks nilai baru.

Dengan Python, operasi pencar ini akan terlihat seperti ini:
indices = tf.constant([[1], [3]])
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)
Tensor yang dihasilkan akan terlihat seperti ini:[[[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]], [[5, 5, 5, 5], [6, 6, 6, 6], [7 , 7, 7, 7], [8, 8, 8, 8]]]
Perhatikan bahwa pada CPU, jika indeks di luar batas ditemukan, kesalahan akan dikembalikan. Pada GPU, jika indeks di luar batas ditemukan, indeks diabaikan.
Metode Publik
Keluaran <U> | sebagai Keluaran () Mengembalikan pegangan simbolis tensor. |
statis <U, T memanjang Angka> ScatterNd <U> | |
Keluaran <U> | keluaran () Tensor baru dengan bentuk tertentu dan pembaruan yang diterapkan sesuai dengan indeks. |
Metode yang Diwarisi
Metode Publik
Output publik <U> sebagai Output ()
Mengembalikan pegangan simbolis tensor.
Input ke operasi TensorFlow adalah output dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static ScatterNd <U> create ( Scope scope, Operand <T> index, Operand <U> update, Operand <T> shape)
Metode pabrik untuk membuat kelas yang membungkus operasi ScatterNd baru.
Parameter
cakupan | lingkup saat ini |
---|---|
indeks | Tensor indeks. |
pembaruan | Nilai untuk disebarkan ke tensor keluaran. |
membentuk | 1-D. Bentuk tensor keluaran. |
Kembali
- contoh baru ScatterNd
Keluaran publik <U> keluaran ()
Tensor baru dengan bentuk tertentu dan pembaruan yang diterapkan sesuai dengan indeks.