ScatterNd

kelas akhir publik ScatterNd

Menyebarkan `pembaruan` menjadi tensor bentuk `bentuk` menurut `indeks`.

Sebarkan `pembaruan` yang 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 mengekstraksi nilai atau irisan dari tensor tertentu.

Operasi ini mirip dengan tf.tensor_scatter_nd_add , hanya saja tensornya diinisialisasi nol. Memanggil tf.scatter_nd(indices, updates, shape) sama dengan memanggil `tf.tensor_scatter_nd_add(tf.zeros(shape, update.dtype), indices, update)`

Jika `indeks` berisi duplikat, `pembaruan` terkait diakumulasikan (dijumlahkan) ke dalam tensor keluaran.

PERINGATAN : Untuk tipe data floating-point, outputnya mungkin nondeterministik. Hal ini karena urutan penerapan pembaruan bersifat nondeterministik dan ketika angka floating-point ditambahkan dalam urutan berbeda, kesalahan perkiraan numerik yang dihasilkan bisa sedikit berbeda. Namun, keluarannya akan bersifat deterministik jika determinisme operasi 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`:

indeks.bentuk[-1] <= bentuk.peringkat

Dimensi terakhir `indeks` sesuai dengan indeks 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 operasi pencar yang paling sederhana adalah dengan memasukkan elemen individual ke dalam tensor berdasarkan indeks. Perhatikan contoh di mana Anda ingin menyisipkan 4 elemen tersebar di 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 memasukkan seluruh bagian tensor dengan peringkat 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 ditemukan indeks di luar batas, indeks tersebut akan diabaikan.

Metode Publik

Keluaran <U>
sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
statis <U, T memperluas Angka> ScatterNd <U>
buat ( Lingkup cakupan , indeks Operan <T>, pembaruan Operan <U>, bentuk Operan <T>)
Metode pabrik untuk membuat kelas yang membungkus operasi ScatterNd baru.
Keluaran <U>
keluaran ()
Tensor baru dengan bentuk tertentu dan pembaruan diterapkan sesuai dengan indeks.

Metode Warisan

Metode Publik

Keluaran publik <U> sebagai Keluaran ()

Mengembalikan pegangan simbolik 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 Operand <T>, pembaruan Operand <U>, bentuk Operand <T>)

Metode pabrik untuk membuat kelas yang membungkus operasi ScatterNd baru.

Parameter
cakupan ruang lingkup saat ini
indeks Tensor indeks.
pembaruan Nilai untuk disebarkan ke tensor keluaran.
membentuk 1-D. Bentuk tensor keluaran.
Kembali
  • contoh baru dari ScatterNd

Keluaran publik <U> keluaran ()

Tensor baru dengan bentuk tertentu dan pembaruan diterapkan sesuai dengan indeks.