MatrixSetDiag

genel final sınıfı MatrixSetDiag

Yeni toplu çapraz değerlere sahip toplu matris tensörünü döndürür.

"Giriş" ve "köşegen" verildiğinde, bu işlem, en içteki matrislerin belirtilen köşegenleri dışında, "giriş" ile aynı şekil ve değerlere sahip bir tensör döndürür. Bunların üzerine 'çapraz' değerler yazılacaktır.

'giriş', 'r+1' boyutlarına '[I, J, ..., L, M, N]' sahiptir. 'k' skaler olduğunda veya 'k[0] == k[1]' olduğunda, 'köşegen'in 'r' boyutları `[I, J, ..., L, max_diag_len]' olur. Aksi takdirde, `r+1` boyutlarına `[I, J, ..., L, num_diags, max_diag_len]` sahiptir. "num_diags" köşegenlerin sayısıdır, "num_diags = k[1] - k[0] + 1". `max_diag_len`, `[k[0], k[1]]' aralığındaki en uzun köşegendir, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0] , 0))'

Çıktı, "[I, J, ..., L, M, N]" boyutlarına sahip "k+1" dereceli bir tensördür. 'k' skaler ise veya 'k[0] == k[1]':

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(k[1], 0)] ; if n - m == k[1]
     input[i, j, ..., l, m, n]              ; otherwise
 
Aksi takdirde,
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     input[i, j, ..., l, m, n]                         ; otherwise
 
burada 'd = n - m', 'diag_index = k[1] - d` ve ` index_in_diag = n - maksimum(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))'.

Örneğin:

# The main diagonal.
 input = np.array([[[7, 7, 7, 7],              # Input shape: (2, 3, 4)
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]],
                   [[7, 7, 7, 7],
                    [7, 7, 7, 7],
                    [7, 7, 7, 7]]])
 diagonal = np.array([[1, 2, 3],               # Diagonal shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_set_diag(input, diagonal)
   ==> [[[1, 7, 7, 7],  # Output shape: (2, 3, 4)
         [7, 2, 7, 7],
         [7, 7, 3, 7]],
        [[4, 7, 7, 7],
         [7, 5, 7, 7],
         [7, 7, 6, 7]]]
 
 # A superdiagonal (per batch).
 tf.matrix_set_diag(input, diagonal, k = 1)
   ==> [[[7, 1, 7, 7],  # Output shape: (2, 3, 4)
         [7, 7, 2, 7],
         [7, 7, 7, 3]],
        [[7, 4, 7, 7],
         [7, 7, 5, 7],
         [7, 7, 7, 6]]]
 
 # A band of diagonals.
 diagonals = np.array([[[0, 9, 1],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 1, 2],
                        [5, 6, 4],
                        [6, 1, 2],
                        [3, 4, 0]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2))
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[9, 1, 0],  # Diagonal shape: (2, 4, 3)
                        [6, 5, 8],
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[1, 2, 0],
                        [5, 6, 4],
                        [6, 1, 2],
                        [0, 3, 4]]])
 tf.matrix_set_diag(input, diagonals, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[1, 6, 9, 7],  # Output shape: (2, 3, 4)
         [4, 2, 5, 1],
         [7, 5, 3, 8]],
        [[6, 5, 1, 7],
         [3, 1, 6, 2],
         [7, 4, 2, 4]]]
 
 

İç İçe Sınıflar

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

Sabitler

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

Genel Yöntemler

statik MatrixSetDiag.Options
hizala (Dize hizala)
Çıkış <T>
Çıkış olarak ()
Tensörün sembolik tutamacını döndürür.
static <T, TType'ı genişletir > MatrixSetDiag <T>
create ( Kapsam kapsamı, İşlenen <T> girişi, İşlenen <T> çapraz, İşlenen < TInt32 > k, Seçenekler... seçenekler)
Yeni bir MatrixSetDiag işlemini saran bir sınıf oluşturmaya yönelik fabrika yöntemi.
Çıkış <T>
çıktı ()
'output.shape = input.shape' ile 'r+1' sırasını alın.

Kalıtsal Yöntemler

Sabitler

genel statik son Dize OP_NAME

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

Sabit Değer: "MatrixSetDiagV3"

Genel Yöntemler

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

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

Parametreler
kapsam mevcut kapsam
giriş Sıralama "r+1", burada "r >= 1".
diyagonal 'k' bir tam sayı olduğunda veya 'k[0] == k[1]' olduğunda 'r'yi sıralayın. Aksi halde 'r+1' derecesine sahiptir. 'k >= 1'.
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.
seçenekler isteğe bağlı nitelik değerlerini taşır
İadeler
  • MatrixSetDiag'ın yeni bir örneği

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

'output.shape = input.shape' ile 'r+1' sırasını alın.