Uyarı: Bu API kullanımdan kaldırıldı ve TensorFlow'un gelecekteki bir sürümünde , değişim kararlı hale geldikten sonra kaldırılacaktır.

Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

TensorScatterSub

public final class TensorScatterSub

"Endekslere" göre seyrek "güncellemeleri" mevcut bir tensörden çıkarır.

Bu işlem, seyrek "güncellemeleri" geçen "tensör" den çıkararak yeni bir tensör oluşturur. Bu işlem "tf.scatter_nd_sub" a çok benzer, tek farkı, güncellemelerin mevcut bir tensörden çıkarılmasıdır (bir değişkenin aksine). Mevcut tensör hafızası yeniden kullanılamazsa, bir kopya yapılır ve güncellenir.

"indisler", yeni bir "şekil" tensörü için indisleri içeren bir tamsayı tensörüdür. "Endekslerin" son boyutu, en fazla "şekil" sıralamasında olabilir:

indices.shape [-1] <= şekil.rank

"İndisler" in son boyutu, boyut "indisleri" boyunca öğeler ("indices.shape [-1] = shape.rank" ise) veya dilimlere ("indices.shape [-1] <shape.rank") indislere karşılık gelir .shape [-1] "/" şekil ". "güncellemeler", şekle sahip bir tensördür

indices.shape [: - 1] + şekil [indices.shape [-1]:]

Tensor_scatter_sub'ın en basit biçimi, tek tek öğeleri bir tensörden indeksle çıkarmaktır. Örneğin, 8 elemanlı bir rank-1 tensöre 4 saçılmış eleman eklemek istediğimizi varsayalım.

Python'da, bu dağılım çıkarma işlemi şöyle görünecektir:

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

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

Ayrıca, daha yüksek bir tensörün tüm dilimlerini bir kerede ekleyebiliriz. Örneğin, bir rank-3 tensörünün ilk boyutuna iki yeni değer matrisi içeren iki dilim eklemek istersek.

Python'da, bu dağılım ekleme işlemi şöyle görünür:

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)
 
Elde edilen tensör şöyle görünür:

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

CPU'da, sınır dışı bir dizin bulunursa, bir hata döndürülür. GPU'da, sınır dışı bir dizin bulunursa, dizin yok sayılır.

Kamu Yöntemleri

Çıkış <T>
asOutput ()
Bir tensörün sembolik tutamacını döndürür.
statik <T, U, Number> TensorScatterSub'ı genişletir <T>
oluştur ( Kapsam kapsamı, Operand <T> tensörü, Operand <U> indisleri, Operand <T> güncellemeleri)
Yeni bir TensorScatterSub işlemini saran bir sınıf oluşturmak için fabrika yöntemi.
Çıkış <T>
çıktı ()
Tensörden yeni bir tensör kopyalandı ve endekslere göre güncellemeler çıkarıldı.

Devralınan Yöntemler

Kamu Yöntemleri

public Output <T> 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, girdinin hesaplanmasını temsil eden sembolik bir tutamaç elde etmek için kullanılır.

public static TensorScatterSub <T> create ( Scope kapsamı, Operand <T> tensor, Operand <U> indisleri, Operand <T> güncellemeleri)

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

Parametreler
dürbün mevcut kapsam
tensör Kopyalamak / güncellemek için tensör.
endeksler Endeks tensörü.
güncellemeler Çıktıya dağıtmak için güncellemeler.
İadeler
  • TensorScatterSub'ın yeni bir örneği

public Output <T> çıkışı ()

Tensörden yeni bir tensör kopyalandı ve endekslere göre güncellemeler çıkarıldı.