Mengembalikan tensor diagonal kumpulan dengan nilai diagonal kumpulan tertentu.
Mengembalikan tensor dengan konten dalam `diagonal` sebagai diagonal ke-`k[0]` hingga `k[1]`-diagonal matriks, dengan semua yang lain diisi dengan `padding`. `num_rows` dan `num_cols` menentukan dimensi matriks keluaran yang paling dalam. Jika keduanya tidak ditentukan, operasi mengasumsikan matriks terdalam berbentuk persegi dan menyimpulkan ukurannya dari `k` dan dimensi terdalam dari `diagonal`. Jika hanya salah satu saja yang ditentukan, operasi mengasumsikan nilai yang tidak ditentukan adalah yang terkecil berdasarkan kriteria lainnya.
Misalkan `diagonal` memiliki dimensi `r` `[I, J, ..., L, M, N]`. Tensor keluaran memiliki peringkat `r+1` dengan bentuk `[I, J, ..., L, M, num_rows, num_cols]` ketika hanya satu diagonal yang diberikan (`k` adalah bilangan bulat atau `k[0] == k[1]`). Jika tidak, ia memiliki peringkat `r` dengan bentuk `[I, J, ..., L, num_rows, num_cols]`.
Dimensi terdalam kedua dari `diagonal` memiliki makna ganda. Jika `k` adalah skalar atau `k[0] == k[1]`, `M` adalah bagian dari ukuran batch [I, J, ..., M], dan tensor keluarannya adalah:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
padding_value ; otherwise
Jika tidak, `M` dianggap sebagai jumlah diagonal matriks dalam kumpulan yang sama (`M = k[1]-k[0]+1`), dan tensor keluarannya adalah: output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
padding_value ; otherwise
dimana `d = n - m`, `diag_index = k[1] - d`, dan `index_in_diag = n - max(d, 0)`.Misalnya:
# 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 band of diagonals.
diagonals = np.array([[[1, 2, 3], # Input shape: (2, 2, 3)
[4, 5, 0]],
[[6, 7, 9],
[9, 1, 0]]])
tf.matrix_diag(diagonals, k = (-1, 0))
==> [[[1, 0, 0], # Output shape: (2, 3, 3)
[4, 2, 0],
[0, 5, 3]],
[[6, 0, 0],
[9, 7, 0],
[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]]
Metode Publik
Keluaran <T> | sebagai Keluaran () Mengembalikan pegangan simbolik tensor. |
statis <T> MatrixDiagV2 <T> | |
Keluaran <T> | keluaran () Memiliki peringkat `r+1` ketika `k` adalah bilangan bulat atau `k[0] == k[1]`, peringkat `r` sebaliknya. |
Metode Warisan
Metode Publik
Keluaran publik <T> sebagai Keluaran ()
Mengembalikan pegangan simbolik tensor.
Masukan ke operasi TensorFlow adalah keluaran dari operasi TensorFlow lainnya. Metode ini digunakan untuk mendapatkan pegangan simbolis yang mewakili perhitungan input.
public static MatrixDiagV2 <T> buat ( Ruang lingkup , Operan <T> diagonal, Operan <Integer> k, Operan <Integer> numRows, Operan <Integer> numCols, Operan <T> paddingValue)
Metode pabrik untuk membuat kelas yang membungkus operasi MatrixDiagV2 baru.
Parameter
cakupan | ruang lingkup saat ini |
---|---|
diagonal | Peringkat `r`, di mana `r >= 1` |
k | Offset diagonal. Nilai positif berarti superdiagonal, 0 mengacu pada diagonal utama, dan nilai negatif berarti subdiagonal. `k` dapat berupa bilangan bulat tunggal (untuk satu diagonal) atau sepasang bilangan bulat yang menentukan ujung rendah dan tinggi dari pita matriks. `k[0]` tidak boleh lebih besar dari `k[1]`. |
nomor baris | Jumlah baris matriks keluaran. Jika tidak tersedia, operasi mengasumsikan matriks keluaran adalah matriks persegi dan menyimpulkan ukuran matriks dari k dan dimensi terdalam dari `diagonal`. |
nomorKolom | Jumlah kolom matriks keluaran. Jika tidak tersedia, operasi mengasumsikan matriks keluaran adalah matriks persegi dan menyimpulkan ukuran matriks dari k dan dimensi terdalam dari `diagonal`. |
paddingValue | Nomor untuk mengisi area di luar pita diagonal yang ditentukan. Standarnya adalah 0. |
Kembali
- contoh baru dari MatrixDiagV2
Keluaran publik <T> keluaran ()
Memiliki peringkat `r+1` ketika `k` adalah bilangan bulat atau `k[0] == k[1]`, peringkat `r` sebaliknya.