Menyebarkan `pembaruan` ke dalam tensor baru menurut `indeks`.
Membuat tensor baru dengan menerapkan `pembaruan` yang jarang ke nilai atau irisan individual dalam tensor (awalnya nol untuk numerik, kosong untuk string) dari `bentuk` yang diberikan sesuai dengan indeks. Operator ini merupakan kebalikan dari operator tf.gather_nd
yang mengekstraksi nilai atau irisan dari tensor tertentu.
Operasi ini mirip dengan tensor_scatter_add, hanya saja tensornya diinisialisasi nol. Memanggil tf.scatter_nd(indices, values, shape)
identik dengan `tensor_scatter_add(tf.zeros(shape, value.dtype), indices, value)`
Jika `indeks` berisi duplikat, maka pembaruannya diakumulasikan (dijumlahkan).
PERINGATAN : Urutan penerapan pembaruan bersifat nondeterministik, sehingga output akan menjadi nondeterministik jika `indeks` berisi duplikat -- karena beberapa masalah perkiraan numerik, angka yang dijumlahkan dalam urutan berbeda mungkin menghasilkan hasil yang berbeda.
`indices` adalah tensor bilangan bulat yang berisi indeks ke dalam tensor baru dengan bentuk `shape`. Dimensi terakhir dari `indeks` paling banyak dapat berupa peringkat `bentuk`:
indeks.bentuk[-1] <= bentuk.peringkat
Dimensi terakhir `indeks` sesuai dengan indeks ke dalam elemen (jika `indeks.bentuk[-1] = bentuk.peringkat`) atau irisan (jika `indeks.bentuk[-1] < bentuk.peringkat`) sepanjang `indeks dimensi .bentuk[-1]` dari `bentuk`. `updates` adalah tensor dengan bentuk
indeks.bentuk[:-1] + bentuk[indeks.bentuk[-1]:]
Bentuk pencar yang paling sederhana adalah dengan menyisipkan elemen individual ke dalam tensor berdasarkan indeks. Misalnya, kita ingin menyisipkan 4 elemen tersebar di tensor peringkat-1 dengan 8 elemen.
Di 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]
Kita juga dapat memasukkan seluruh bagian tensor dengan peringkat lebih tinggi sekaligus. Misalnya, jika kita ingin menyisipkan dua irisan pada dimensi pertama tensor peringkat-3 dengan dua matriks nilai baru.
Di Python, operasi pencar ini akan terlihat seperti ini:
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)
Tensor yang dihasilkan akan terlihat seperti ini:[[[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]]]
Perhatikan bahwa pada CPU, jika indeks di luar batas ditemukan, kesalahan akan dikembalikan. Pada GPU, jika ditemukan indeks di luar batas, indeks tersebut akan diabaikan.
Konstanta
Rangkaian | OP_NAME | Nama operasi ini dikenal dengan mesin inti TensorFlow |
Metode Publik
Keluaran <U> | sebagai Keluaran () Mengembalikan pegangan simbolis tensor. |
statis <U memperluas TType , T memperluas TNumber > ScatterNd <U> | |
Keluaran <U> | keluaran () Tensor baru dengan bentuk tertentu dan pembaruan diterapkan sesuai dengan indeks. |
Metode Warisan
Konstanta
String akhir statis publik OP_NAME
Nama operasi ini dikenal dengan mesin inti TensorFlow
Metode Publik
Keluaran publik <U> sebagai Keluaran ()
Mengembalikan pegangan simbolis tensor.
Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static ScatterNd <U> buat ( Lingkup cakupan , indeks Operan <T>, pembaruan Operan <U>, bentuk Operan <T>)
Metode pabrik untuk membuat kelas yang membungkus operasi ScatterNd baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
indeks | Tensor indeks. |
pembaruan | Pembaruan untuk disebarkan ke dalam keluaran. |
membentuk | 1-D. Bentuk tensor yang dihasilkan. |
Kembali
- contoh baru dari ScatterNd
Keluaran publik <U> keluaran ()
Tensor baru dengan bentuk tertentu dan pembaruan diterapkan sesuai dengan indeks.