MatrixDiagPartV3

genel final sınıfı MatrixDiagPartV3

Toplu tensörün toplu çapraz kısmını döndürür.

Toplu 'girişin' 'k[0]' ile 'k[1]' arası köşegenlerine sahip bir tensör döndürür.

'Giriş'in 'r' boyutlarına '[I, J, ..., L, M, N]' sahip olduğunu varsayalım. Çıkarılacak tüm köşegenler arasında maksimum uzunluk `max_diag_len` olsun, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0))` `num_diags` olsun çıkarılacak köşegenlerin sayısı olsun, 'num_diags = k[1] - k[0] + 1'.

"num_diags == 1" ise, çıkış tensörü "[I, J, ..., L, max_diag_len]" şeklinde ve değerlerle "r - 1" düzeyindedir:

diagonal[i, j, ..., l, n]
   = input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
     padding_value                 ; otherwise.
 
burada 'y = maksimum(-k[1], 0)', 'x = maksimum(k[1], 0)'.

Aksi takdirde, çıkış tensörünün değerleri olan "[I, J, ..., L, num_diags, max_diag_len]" boyutlarıyla "r" derecesi vardır:

diagonal[i, j, ..., l, m, n]
   = input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
     padding_value                 ; otherwise.
 
burada 'd = k[1] - m', 'y = maks(-d, 0) - ofset' ve 'x = maks(d, 0) - ofset'.

Köşegen hizalamasının sağa doğru olması dışında "ofset" sıfırdır.

offset = max_diag_len - diag_len(d) ; if (`align` in {RIGHT_LEFT, RIGHT_RIGHT
                                            and `d >= 0`) or
                                          (`align` in {LEFT_RIGHT, RIGHT_RIGHT}
                                            and `d <= 0`)
          0                          ; otherwise
 }
burada 'diag_len(d) = min(sütunlar - maks(d, 0), satırlar + min(d, 0))'.

Giriş en az bir matris olmalıdır.

Örneğin:

input = np.array([[[1, 2, 3, 4],  # Input shape: (2, 3, 4)
                    [5, 6, 7, 8],
                    [9, 8, 7, 6]],
                   [[5, 4, 3, 2],
                    [1, 2, 3, 4],
                    [5, 6, 7, 8]]])
 
 # A main diagonal from each batch.
 tf.matrix_diag_part(input) ==> [[1, 6, 7],  # Output shape: (2, 3)
                                 [5, 2, 7]]
 
 # A superdiagonal from each batch.
 tf.matrix_diag_part(input, k = 1)
   ==> [[2, 7, 6],  # Output shape: (2, 3)
        [4, 3, 8]]
 
 # A band from each batch.
 tf.matrix_diag_part(input, k = (-1, 2))
   ==> [[[0, 3, 8],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [5, 8, 0]],
        [[0, 3, 4],
         [4, 3, 8],
         [5, 2, 7],
         [1, 6, 0]]]
 
 # LEFT_RIGHT alignment.
 tf.matrix_diag_part(input, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[3, 8, 0],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [0, 5, 8]],
        [[3, 4, 0],
         [4, 3, 8],
         [5, 2, 7],
         [0, 1, 6]]]
 
 # max_diag_len can be shorter than the main diagonal.
 tf.matrix_diag_part(input, k = (-2, -1))
   ==> [[[5, 8],
         [9, 0]],
        [[1, 6],
         [5, 0]]]
 
 # padding_value = 9
 tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
   ==> [[[9, 9, 4],  # Output shape: (2, 3, 3)
         [9, 3, 8],
         [2, 7, 6]],
        [[9, 9, 2],
         [9, 3, 4],
         [4, 3, 8]]]
 
 

İç İçe Sınıflar

sınıf MatrixDiagPartV3.Options MatrixDiagPartV3 için isteğe bağlı özellikler

Sabitler

Sicim OP_NAME Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı

Genel Yöntemler

statik MatrixDiagPartV3.Options
hizala (Dize hizala)
Çıkış <T>
Çıkış olarak ()
Tensörün sembolik tutamacını döndürür.
statik <T TType'ı genişletir > MatrixDiagPartV3 <T>
create ( Kapsam kapsamı, İşlenen <T> girişi, İşlenen < TInt32 > k, İşlenen <T> paddingValue, Seçenekler... seçenekleri)
Yeni bir MatrixDiagPartV3 işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
Çıkış <T>
diyagonal ()
Çıkarılan köşegen(ler).

Kalıtsal Yöntemler

Sabitler

genel statik son Dize OP_NAME

Bu operasyonun TensorFlow çekirdek motoru tarafından bilinen adı

Sabit Değer: "MatrixDiagPartV3"

Genel Yöntemler

public static MatrixDiagPartV3.Options hizalama (Dize hizalama)

Parametreler
hizalamak Bazı köşegenler "max_diag_len"den daha kısadır ve doldurulmaları gerekir. `align', süper köşegenlerin ve alt köşegenlerin sırasıyla nasıl hizalanması gerektiğini belirten bir dizedir. Dört olası hizalama vardır: "RIGHT_LEFT" (varsayılan), "LEFT_RIGHT", "LEFT_LEFT" ve "RIGHT_RIGHT". "RIGHT_LEFT" süper köşegenleri sağa (satırı sola doldurur) ve alt köşegenleri sola (satırı sağa doldurur) hizalar. LAPACK'in kullandığı paketleme formatıdır. cuSPARSE, ters hizalama olan "LEFT_RIGHT"ı kullanır.

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

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 MatrixDiagPartV3 <T> create ( Kapsam kapsamı, İşlenen <T> girişi, İşlenen < TInt32 > k, İşlenen <T> paddingValue, Seçenekler... seçenekler)

Yeni bir MatrixDiagPartV3 işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.

Parametreler
kapsam mevcut kapsam
giriş Rank 'r' tensörü, burada 'r >= 2'.
k Çapraz uzaklık(lar). Pozitif değer süper köşegeni, 0 ana köşegeni, negatif değer ise alt köşegenleri ifade eder. 'k' tek bir tam sayı (tek bir köşegen için) veya bir matris bandının alt ve üst uçlarını belirten bir çift tam sayı olabilir. "k[0]", "k[1]"den büyük olmamalıdır.
dolgu Değeri Belirtilen diyagonal bandın dışındaki alanı dolduracak değer. Varsayılan 0'dır.
seçenekler isteğe bağlı nitelik değerlerini taşır
İade
  • MatrixDiagPartV3'ün yeni bir örneği

genel Çıkış <T> diyagonal ()

Çıkarılan köşegen(ler).