ScatterNd

genel final sınıfı ScatterNd

'Güncellemeleri', 'indekslere' göre bir şekil 'şekli' tensörüne dağıtır.

Seyrek "güncellemeleri" belirtilen "endekslerdeki" bireysel değerlere göre dağıtın. Bu işlem, belirttiğiniz "şekle" sahip bir çıkış tensörü döndürür. Bu işlem, belirli bir tensörden değerleri veya dilimleri çıkaran tf.gather_nd operatörünün tersidir.

Bu işlem, tensörün sıfır başlatılması dışında tf.tensor_scatter_nd_add işlemine benzer. tf.scatter_nd(indices, updates, shape) çağrısını yapmak, `tf.tensor_scatter_nd_add(tf.zeros(shape, update.dtype), indices, updates)` çağrısını yapmakla aynıdır.

'Endeksler' kopyalar içeriyorsa, ilgili 'güncellemeler' çıkış tensöründe toplanır (toplanır).

UYARI : Kayan noktalı veri türleri için çıktı belirleyici olmayabilir. Bunun nedeni, güncellemelerin uygulanma sırasının belirleyici olmaması ve kayan nokta sayıları farklı sıralarda eklendiğinde ortaya çıkan sayısal yaklaşım hatasının biraz farklı olabilmesidir. Ancak, op determinizm tf.config.experimental.enable_op_determinism aracılığıyla etkinleştirilirse çıktı deterministik olacaktır.

'indeksler', çıkış tensörüne indeksler içeren bir tamsayı tensörüdür. 'Endekslerin' son boyutu en fazla 'şekil'in sıralaması olabilir:

indeksler.şekil[-1] <= şekil.sıralama

"indekslerin" son boyutu, "indeksler" boyutu boyunca öğelerin endekslerine (eğer "indeks.şekil[-1] = şekil.rank") veya dilimlere (eğer "indeks.şekil[-1] < şekil.rank") karşılık gelir "şekil"in .şekli[-1]'.

'güncellemeler' şekli olan bir tensördür:

indeksler.şekil[:-1] + şekil[indisler.şekil[-1]:]

Saçılma işleminin en basit biçimi, tek tek elemanları bir tensöre indekse göre eklemektir. 8 öğeli bir derece 1 tensöre 4 dağınık öğe eklemek istediğiniz bir örneği düşünün.

Python'da bu dağılım işlemi şu şekilde görünecektir:

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)
 
Ortaya çıkan tensör şu şekilde görünecektir:

[0, 11, 0, 10, 9, 0, 0, 12]

Ayrıca daha yüksek dereceli bir tensörün tüm dilimlerini aynı anda ekleyebilirsiniz. Örneğin, bir rütbe-3 tensörün ilk boyutuna iki yeni değer matrisine sahip iki dilim ekleyebilirsiniz.

Python'da bu dağılım işlemi şu şekilde görünecektir:

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)
 
Ortaya çıkan tensör şu şekilde görünecektir:

[[[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]]]

CPU'da sınır dışı bir dizin bulunursa bir hata döndürüleceğini unutmayın. GPU'da sınır dışı bir dizin bulunursa dizin dikkate alınmaz.

Genel Yöntemler

Çıkış <U>
Çıkış olarak ()
Bir tensörün sembolik tutamacını döndürür.
statik <U, T Sayıyı genişletir> ScatterNd <U>
create ( Kapsam kapsamı, İşlenen <T> indeksleri, İşlenen <U> güncellemeleri, İşlenen <T> şekli)
Yeni bir ScatterNd işlemini saran bir sınıf oluşturmak için fabrika yöntemi.
Çıkış <U>
çıktı ()
Verilen şekle sahip yeni bir tensör ve endekslere göre uygulanan güncellemeler.

Kalıtsal Yöntemler

Genel Yöntemler

genel Çıkış <U> asOutput ()

Bir tensörün sembolik tutamacını döndürür.

TensorFlow işlemlerinin girdileri, başka bir TensorFlow işleminin çıktılarıdır. Bu yöntem, girişin hesaplanmasını temsil eden sembolik bir tanıtıcı elde etmek için kullanılır.

public static ScatterNd <U> create ( Kapsam kapsamı, İşlenen <T> endeksleri, İşlenen <U> güncellemeleri, İşlenen <T> şekli)

Yeni bir ScatterNd işlemini saran bir sınıf oluşturmak için fabrika yöntemi.

Parametreler
kapsam mevcut kapsam
endeksler Endekslerin tensörü.
güncellemeler Çıkış tensörüne dağıtılacak değerler.
şekil 1-D. Çıkış tensörünün şekli.
İadeler
  • ScatterNd'nin yeni bir örneği

genel Çıkış <U> çıkışı ()

Verilen şekle sahip yeni bir tensör ve endekslere göre uygulanan güncellemeler.