Peringatan: API ini tidak digunakan lagi dan akan dihapus di versi TensorFlow mendatang setelah penggantinya stabil.

MatrixDiagPartV3

public class akhir MatrixDiagPartV3

Mengembalikan bagian diagonal batch dari tensor batch.

Mengembalikan tensor dengan diagonal `k[0]`-th hingga `k[1]`-th dari `input` batch.

Asumsikan `input` memiliki dimensi `r` `[I, J, ..., L, M, N]`. Misalkan `max_diag_len` menjadi panjang maksimum di antara semua diagonal yang akan diekstraksi, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0))` Misalkan `num_diags` menjadi jumlah diagonal untuk mengekstrak, `num_diags = k[1] - k[0] + 1`.

Jika `num_diags == 1`, output tensor adalah peringkat` r - 1` dengan bentuk `[I, J, ..., L, max_diag_len]` dan nilai-nilai:

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.
 
mana `y = max (-k [1], 0)`, `x = maks(k[1], 0)`.

Jika tidak, output tensor memiliki peringkat `r` dengan dimensi` [I, J, ..., L, num_diags, max_diag_len] `dengan nilai-nilai:

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.
 
mana` d = k [1] - m`, `y = maks(-d, 0) - offset`, dan `x = maks(d, 0) - offset`.

`offset` adalah nol kecuali jika penjajaran diagonal ke kanan.

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
 }
mana `diag_len (d) = min (cols - max (d, 0), baris + min (d, 0))`.

Masukan setidaknya harus berupa matriks.

Sebagai contoh:

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

Kelas Bersarang

kelas MatrixDiagPartV3.Options Atribut opsional untuk MatrixDiagPartV3

Metode Publik

statis MatrixDiagPartV3.Options
menyelaraskan (String menyelaraskan)
Output <T>
asOutput ()
Mengembalikan pegangan simbolis tensor.
statis <T> MatrixDiagPartV3 <T>
membuat ( Lingkup lingkup, Operan <T> input, Operan <Integer> k, Operan <T> paddingValue, Options ... pilihan)
Metode pabrik untuk membuat kelas yang membungkus operasi MatrixDiagPartV3 baru.
Output <T>
diagonal ()
Diagonal yang diekstraksi.

Metode yang Diwarisi

Metode Publik

public static MatrixDiagPartV3.Options menyelaraskan (String menyelaraskan)

Parameter
meluruskan Beberapa diagonal lebih pendek dari `max_diag_len` dan perlu diberi bantalan. `align` adalah string yang menentukan bagaimana superdiagonal dan subdiagonal harus disejajarkan, masing-masing. Ada empat kemungkinan penyelarasan: "RIGHT_LEFT" (default), "LEFT_RIGHT", "LEFT_LEFT", dan "RIGHT_RIGHT". "RIGHT_LEFT" menyejajarkan superdiagonal ke kanan (mengisi kiri baris) dan subdiagonal ke kiri (mengisi baris kanan). Ini adalah format kemasan yang digunakan LAPACK. cuSPARSE menggunakan "LEFT_RIGHT", yang merupakan kesejajaran yang berlawanan.

publik Keluaran <T> asOutput ()

Mengembalikan pegangan simbolis tensor.

Input ke operasi TensorFlow adalah output dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.

public static MatrixDiagPartV3 <T> membuat ( Lingkup lingkup, Operan <T> input, Operan <Integer> k, Operan <T> paddingValue, Options ... pilihan)

Metode pabrik untuk membuat kelas yang membungkus operasi MatrixDiagPartV3 baru.

Parameter
cakupan lingkup saat ini
memasukkan Peringkat tensor `r` di mana `r >= 2`.
k Offset diagonal. Nilai positif berarti superdiagonal, 0 mengacu pada diagonal utama, dan nilai negatif berarti subdiagonal. `k` dapat berupa bilangan bulat tunggal (untuk diagonal tunggal) atau sepasang bilangan bulat yang menentukan ujung rendah dan tinggi pita matriks. `k[0]` tidak boleh lebih besar dari `k[1]`.
nilai padding Nilai untuk mengisi area di luar pita diagonal yang ditentukan. Standarnya adalah 0.
pilihan membawa nilai atribut opsional
Kembali
  • contoh baru MatrixDiagPartV3

publik Keluaran <T> diagonal ()

Diagonal yang diekstraksi.