Peringatan: API ini tidak digunakan lagi dan akan dihapus di versi TensorFlow mendatang setelah penggantinya stabil.

ScatterNd

kelas akhir publik ScatterNd

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>
buat ( Cakupan lingkup, indeks Operand <T>, pembaruan Operand <U>, bentuk Operand <T>)
Metode pabrik untuk membuat kelas yang membungkus operasi ScatterNd baru.
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.