Python için indeksleme gibi yardımcı uç nokta yöntemleri.
Ayrıca bakınız
Kamu İnşaatçıları
Genel Yöntemler
static <T, TType'ı genişletir > StridedSlice <T> | stridedSlice ( Kapsam kapsamı, İşlenen <T> girişi, Dizin... dizinleri) 'Giriş'ten adımlı bir dilim döndürün. |
static <T, TType'ı genişletir > StridedSliceAssign <T> | stridedSliceAssign ( Kapsam kapsamı, İşlenen <T> ref, İşlenen <T> değeri, Dizin... endeksleri) 'Ref'in dilimlenmiş l-değeri referansına 'değer' atayın. |
Kalıtsal Yöntemler
Kamu İnşaatçıları
halka açık StridedSliceHelper ()
Genel Yöntemler
public static StridedSlice <T> stridedSlice ( Kapsam kapsamı , İşlenen <T> girişi, Dizin... dizinleri)
'Giriş'ten adımlı bir dilim döndürün.
Bu operasyonun amacı 'n' boyutlu 'giriş' tensörünün elemanlarının bir alt kümesiyle yeni bir tensör üretmektir. Alt küme, bu fonksiyonun bağımsız değişkenlerine kodlanmış bir dizi 'm' seyrek aralık belirtimi kullanılarak seçilir. Bazı durumlarda 'm'nin 'n'ye eşit olabileceğini ancak durumun böyle olması gerekmediğini unutmayın. Her aralık spesifikasyonu girişi aşağıdakilerden biri olabilir:
- Ellipsis ellipsis()
işlevini kullanan bir üç nokta (...). Elipsler, tam boyut seçiminin sıfır veya daha fazla boyutunu belirtmek için kullanılır. Örneğin, stridedSlice(foo, Indices.ellipsis()
kimlik dilimidir.
- newAxis()
kullanan yeni bir eksen. Bu, yeni bir şekil=1 boyut eklemek için kullanılır. Örneğin, foo
(3, 4)
) şekli olduğu ` stridedSlice(foo, Indices.newAxis())
bir (1, 3, 4)
tensörü üretir.
- slice(Long, Long, long)
Index.slice()} veya all()
işlevini kullanan begin:end:stride
aralığı. Bu, belirli bir boyuttan ne kadar seçim yapılacağını belirtmek için kullanılır. stride
, 0 dışında herhangi bir tam sayı olabilir. begin
, seçilecek ilk değerin indeksini temsil eden bir tamsayı iken end
, seçilecek son değerin indeksini (hariç) temsil eder. Başlangıç ve bitiş boş olabilir; bu durumda indeks sırasıyla boyutun başında veya sonunda başlar veya biter (adım negatifse ters çevrilir). Her ikisi de null olduğunda, slice()
ile all()
aynıdır. Her boyutta seçilen değerlerin sayısı stride > 0
ise end - begin
ve stride < 0
ise begin - end
. begin
ve end
negatif olabilir; burada -1
son öğe, -2
ise sondan ikinci öğedir. Örneğin, (3,)
tensör stridedSlice(foo, Indices.all())
şekli verildiğinde, etkili begin
ve end
0
ve 3
. Bunun, etkili begin
ve end
0
ve 2
olan stridedSlice(foo, Indices.slice(0, -1))
işlevine eşdeğer olduğunu varsaymayın. Başka bir örnek, bir tensörün ilk boyutunu tersine çevirip son ikisini (orijinal düzen öğelerinde) bırakan stridedSlice(foo, Indices.slice(-2, null, -1))
dir. Örneğin foo = [1,2,3,4]; stridedSlice(foo, Indices.slice(-2, null, -1)
, [4,3]
.
- at(long)
kullanan tek bir dizin. Bu yalnızca belirli bir dizine sahip öğeleri tutmak için kullanılır. Örneğin ( stridedSlice(foo, Indices.at(2))
bir şekil (5,6)
tensörü üzerinde bir şekil (6,)
tensörü üretir. Boyut at(long, boolean)
kullanılarak birinci boyutta tutulabilir.
Bu anlambilim genellikle burada bulabileceğiniz NumPy'nin dizin oluşturma anlambilimini takip eder: https://numpy.org/doc/stable/reference/arrays.indexing.html
Gereksinimler : `0 != i için [0, m)'deki adımlar[i]` Yalnızca bir üç nokta.
Parametreler
kapsam | mevcut kapsam |
---|---|
endeksler | Dilimlenecek endeksler. Bkz. Indices . |
İadeler
- StridedSlice'ın yeni bir örneği
Ayrıca bakınız
public static StridedSliceAssign <T> stridedSliceAssign ( Kapsam kapsamı, İşlenen <T> ref, İşlenen <T> değeri, Dizin... endeksleri)
'Ref'in dilimlenmiş l-değeri referansına 'değer' atayın.
'Değer' değerleri, dilim parametreleri tarafından seçilen 'ref' değişkenindeki konumlara atanır. Dilim parametreleri "begin", "end", "strides" vb. tam olarak "StridedSlice"daki gibi çalışır.
NOT: Bu işlem şu anda yayını desteklememektedir ve dolayısıyla "değer"in şekli tam olarak "ref" diliminin ürettiği şekil olmalıdır.
Parametreler
kapsam | mevcut kapsam |
---|---|
referans | atanacak tensör. |
değer | atanacak değer. |
endeksler | Dilimlenecek endeksler. Bkz. Indices . |
İadeler
- yeni bir StridedSliceAssign örneği