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

MatrixDiagV3

genel son sınıf MatrixDiagV3

Verilen toplu çapraz değerlerle bir toplu çapraz tensör döndürür.

İçeriği "diyagonal" olarak bir matrisin "k [0]" - "k [1]" arası köşegenleri olan bir tensörü döndürür, diğer her şey "dolgu" ile doldurulur. "satır_sayısı" ve "satır_sayısı", çıktının en içteki matrisinin boyutunu belirtir. Her ikisi de belirtilmezse, işlem en içteki matrisin kare olduğunu varsayar ve boyutunu "k" dan ve "köşegen" in en içteki boyutundan çıkarır. Bunlardan yalnızca biri belirtilirse, operasyon belirlenmemiş değerin diğer kriterlere göre mümkün olan en küçük değer olduğunu varsayar.

"Köşegen" in "r" boyutları "[I, J, ..., L, M, N]" olsun. Çıktı tensörü, yalnızca bir köşegen verildiğinde ("k" bir tam sayıdır veya "k [0] 'dır)," [I, J, ..., L, M, satır_sayısı, sayı_sayısı] "şeklinde" r + 1 "derecesine sahiptir. == k [1] `). Aksi takdirde, "[I, J, ..., L, satır_sayısı, satır_sayısı]" şeklinde "r" derecesine sahiptir.

"Köşegen" in ikinci en içteki boyutu çift anlama sahiptir. "K" skaler veya "k [0] == k [1]" olduğunda, "M" parti boyutunun [I, J, ..., M] parçasıdır ve çıkış tensörü:

output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
     padding_value                             ; otherwise
 
Aksi takdirde, "M", aynı partideki matris için köşegen sayısı olarak kabul edilir ("M = k [1] -k [0] + 1") ve çıkış tensörü:
output[i, j, ..., l, m, n]
   = diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
     padding_value                                     ; otherwise
 
burada "d = n - m" , "diag_index = [k] - d` ve" index_in_diag = n - max (d, 0) + offset`.

"ofset", köşegenin hizasının sağa doğru olması dışında 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 (cols - max (d, 0), satırlar + min (d, 0))`.

Örneğin:

# The main diagonal.
 diagonal = np.array([[1, 2, 3, 4],            # Input shape: (2, 4)
                      [5, 6, 7, 8]])
 tf.matrix_diag(diagonal) ==> [[[1, 0, 0, 0],  # Output shape: (2, 4, 4)
                                [0, 2, 0, 0],
                                [0, 0, 3, 0],
                                [0, 0, 0, 4]],
                               [[5, 0, 0, 0],
                                [0, 6, 0, 0],
                                [0, 0, 7, 0],
                                [0, 0, 0, 8]]]
 
 # A superdiagonal (per batch).
 diagonal = np.array([[1, 2, 3],  # Input shape: (2, 3)
                      [4, 5, 6]])
 tf.matrix_diag(diagonal, k = 1)
   ==> [[[0, 1, 0, 0],  # Output shape: (2, 4, 4)
         [0, 0, 2, 0],
         [0, 0, 0, 3],
         [0, 0, 0, 0]],
        [[0, 4, 0, 0],
         [0, 0, 5, 0],
         [0, 0, 0, 6],
         [0, 0, 0, 0]]]
 
 # A tridiagonal band (per batch).
 diagonals = np.array([[[0, 8, 9],  # Input shape: (2, 2, 3)
                        [1, 2, 3],
                        [4, 5, 0]],
                       [[0, 2, 3],
                        [6, 7, 9],
                        [9, 1, 0]]])
 tf.matrix_diag(diagonals, k = (-1, 1))
   ==> [[[1, 8, 0],  # Output shape: (2, 3, 3)
         [4, 2, 9],
         [0, 5, 3]],
        [[6, 2, 0],
         [9, 7, 3],
         [0, 1, 9]]]
 
 # LEFT_RIGHT alignment.
 diagonals = np.array([[[8, 9, 0],  # Input shape: (2, 2, 3)
                        [1, 2, 3],
                        [0, 4, 5]],
                       [[2, 3, 0],
                        [6, 7, 9],
                        [0, 9, 1]]])
 tf.matrix_diag(diagonals, k = (-1, 1), align="LEFT_RIGHT")
   ==> [[[1, 8, 0],  # Output shape: (2, 3, 3)
         [4, 2, 9],
         [0, 5, 3]],
        [[6, 2, 0],
         [9, 7, 3],
         [0, 1, 9]]]
 
 # Rectangular matrix.
 diagonal = np.array([1, 2])  # Input shape: (2)
 tf.matrix_diag(diagonal, k = -1, num_rows = 3, num_cols = 4)
   ==> [[0, 0, 0, 0],  # Output shape: (3, 4)
        [1, 0, 0, 0],
        [0, 2, 0, 0]]
 
 # Rectangular matrix with inferred num_cols and padding_value = 9.
 tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding_value = 9)
   ==> [[9, 9],  # Output shape: (3, 2)
        [1, 9],
        [9, 2]]
 
 

Yuvalanmış Sınıflar

sınıf MatrixDiagV3.Options MatrixDiagV3 için isteğe bağlı öznitelikler

Kamu Yöntemleri

statik MatrixDiagV3.Options
hizala (Dize hizala)
Çıkış <T>
asOutput ()
Bir tensörün sembolik tutamacını döndürür.
statik <T> MatrixDiagV3 <T>
oluşturmak ( Kapsam kapsamı, Operand <T> köşegen, Operand <Integer> k, Operand <Integer> numRows, Operand <Integer> numCols, Operand <T> paddingValue, Seçenekler ... seçenekler)
Yeni bir MatrixDiagV3 işlemini saran bir sınıf oluşturmak için fabrika yöntemi.
Çıkış <T>
çıktı ()
"K" bir tamsayı olduğunda "r + 1" veya "k [0] == k [1]" olduğunda "r" sıralamasına sahiptir.

Devralınan Yöntemler

Kamu Yöntemleri

public static MatrixDiagV3.Options align (String align)

Parametreler
hizalamak Bazı köşegenler "max_diag_len" den daha kısadır ve doldurulmaları gerekir. "hizala", sırasıyla süper köşegenlerin ve alt köşegenlerin 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ın sol tarafına) ve alt köşegenleri sola (satırın sağ tarafına) hizalar. LAPACK'in kullandığı paketleme biçimidir. cuSPARSE, ters hizalama olan "LEFT_RIGHT" kullanır.

public Output <T> asOutput ()

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

TensorFlow işlemlerine yönelik girdiler, 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 MatrixDiagV3 <T> create ( Scope kapsamı, Operand <T> diyagonal, Operand <Integer> k, Operand <Integer> numRows, Operand <Integer> numCols, Operand <T> paddingValue, Options ... options)

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

Parametreler
dürbün mevcut kapsam
diyagonal Sıra "r", burada "r> = 1"
k Çapraz ofset (ler). Pozitif değer süper diyagonal anlamına gelir, 0 ana köşegen anlamına gelir ve negatif değer alt köşegen anlamına gelir. "k" tek bir tam sayı (tek bir köşegen için) veya bir matris bandının düşük ve yüksek uçlarını belirten bir çift tam sayı olabilir. "k [0]", "k [1]" değerinden büyük olmamalıdır.
numRows Çıktı matrisinin satır sayısı. Sağlanmazsa, işlem çıktı matrisinin bir kare matris olduğunu varsayar ve matris boyutunu k'den ve "köşegen" in en içteki boyutundan çıkarır.
numCols Çıktı matrisinin sütun sayısı. Sağlanmazsa, işlem çıktı matrisinin bir kare matris olduğunu varsayar ve matris boyutunu k'den ve "köşegen" in en içteki boyutundan çıkarır.
paddingValue Belirtilen çapraz bandın dışındaki alanı dolduracak sayı. Varsayılan 0'dır.
seçenekler isteğe bağlı öznitelik değerleri taşır
İadeler
  • MatrixDiagV3'ün yeni bir örneği

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

"K" bir tamsayı olduğunda "r + 1" veya "k [0] == k [1]" olduğunda "r" sıralamasına sahiptir.