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

TensorScatterSub

public class akhir TensorScatterSub

Kurangi `pembaruan` jarang dari tensor yang ada menurut `indeks`.

Operasi ini membuat tensor baru dengan mengurangi `pembaruan` yang jarang dari `tensor` yang diteruskan. Operasi ini sangat mirip dengan `tf.scatter_nd_sub`, kecuali bahwa pembaruan dikurangi dari tensor yang ada (sebagai lawan dari variabel). Jika memori untuk tensor yang ada tidak dapat digunakan kembali, salinan dibuat dan diperbarui.

`indeks` adalah tensor bilangan bulat yang berisi indeks ke dalam tensor baru berbentuk `bentuk`. Dimensi terakhir dari `indeks` paling banyak dapat berupa peringkat `bentuk`:

index.shape[-1] <= shape.rank

Dimensi terakhir dari `indices` sesuai dengan indeks menjadi 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 tensor_scatter_sub adalah mengurangi elemen individu dari tensor dengan indeks. Misalnya, kita ingin menyisipkan 4 elemen yang tersebar dalam tensor peringkat-1 dengan 8 elemen.

Dalam Python, operasi pencar kurangi ini akan terlihat seperti ini:

indices = tf.constant([[4], [3], [1], [7]])
     updates = tf.constant([9, 10, 11, 12])
     tensor = tf.ones([8], dtype=tf.int32)
     updated = tf.tensor_scatter_nd_sub(tensor, indices, updates)
     print(updated)
 
tensor yang dihasilkan akan terlihat seperti ini:

[1, -10, 1, -9, -8, 1, 1, -11]

Kita juga bisa, memasukkan seluruh irisan tensor peringkat yang lebih tinggi sekaligus. Misalnya, jika kita ingin menyisipkan dua irisan dalam dimensi pertama tensor peringkat-3 dengan dua matriks nilai baru.

Dalam Python, ini operasi pencar add 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]]])
     tensor = tf.ones([4, 4, 4],dtype=tf.int32)
     updated = tf.tensor_scatter_nd_sub(tensor, indices, updates)
     print(updated)
 
tensor yang dihasilkan akan terlihat seperti ini:

[[[-4, -4, -4, -4], [-5, -5, -5, -5], [-6, -6, -6, -6], [-7, -7 , -7, -7]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] , [[-4, -4, -4, -4], [-5, -5, -5, -5], [-6, -6, -6, -6], [-7, -7 , -7, -7]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] ]

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

Output <T>
asOutput ()
Mengembalikan pegangan simbolis tensor.
statis <T, U meluas Nomor> TensorScatterSub <T>
membuat ( Lingkup lingkup, Operan <T> tensor, Operan <U> indeks, Operan <T> update)
Metode pabrik untuk membuat kelas yang membungkus operasi TensorScatterSub baru.
Output <T>
Output ()
Tensor baru disalin dari tensor dan pembaruan dikurangi sesuai dengan indeks.

Metode yang Diwarisi

Metode Publik

publik Keluaran <T> asOutput ()

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 TensorScatterSub <T> membuat ( Lingkup lingkup, Operan <T> tensor, Operan <U> indeks, Operan <T> update)

Metode pabrik untuk membuat kelas yang membungkus operasi TensorScatterSub baru.

Parameter
cakupan lingkup saat ini
tensor Tensor untuk menyalin/memperbarui.
indeks Tensor indeks.
pembaruan Pembaruan untuk disebarkan ke dalam output.
Kembali
  • contoh baru TensorScatterSub

publik Keluaran <T> Output ()

Tensor baru disalin dari tensor dan pembaruan dikurangi sesuai dengan indeks.