dòng chảy :: hoạt động :: MatrixDiagPartV2
#include <array_ops.h>
Trả về phần đường chéo theo lô của một tenxơ theo lô.
Tóm lược
Trả về một tensor với đường chéo k[0]
-th đến k[1]
-th của input
lô.
Giả sử input
có r
nguyên [I, J, ..., L, M, N]
. Đặt max_diag_len
là độ dài lớn nhất trong số tất cả các đường chéo được trích xuất, max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0))
Gọi num_diags
là số đường chéo để giải nén, num_diags = k[1] - k[0] + 1
.
Nếu num_diags == 1
, tensor đầu ra có thứ hạng r - 1
với hình dạng [I, J, ..., L, max_diag_len]
và các giá trị:
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.trong đó
y = max(-k[1], 0)
, x = max(k[1], 0)
. Nếu không, tensor đầu ra có xếp hạng r
với các kích thước [I, J, ..., L, num_diags, max_diag_len]
với các giá trị:
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.trong đó
d = k[1] - m
, y = max(-d, 0)
và x = max(d, 0)
.Đầu vào ít nhất phải là ma trận.
Ví dụ:
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 tridiagonal band from each batch. tf.matrix_diag_part(input, k = (-1, 1)) ==> [[[2, 7, 6], # Output shape: (2, 3, 3) [1, 6, 7], [5, 8, 0]], [[4, 3, 8], [5, 2, 7], [1, 6, 0]]]
# Padding value = 9 tf.matrix_diag_part(input, k = (1, 3), padding_value = 9) ==> [[[4, 9, 9], # Output shape: (2, 3, 3) [3, 8, 9], [2, 7, 6]], [[2, 9, 9], [3, 4, 9], [4, 3, 8]]]
Tranh luận:
- phạm vi: Một đối tượng Phạm vi
- đầu vào: Xếp hạng
r
tensor trong đór >= 2
. - k: (Các) độ lệch đường chéo. Giá trị dương có nghĩa là siêu cạnh, 0 là đường chéo chính và giá trị âm có nghĩa là hình con.
k
có thể là một số nguyên duy nhất (đối với một đường chéo duy nhất) hoặc một cặp số nguyên xác định các đầu cuối thấp và cao của một dải ma trận.k[0]
không được lớn hơnk[1]
. - padding_value: Giá trị để lấp đầy vùng bên ngoài dải chéo được chỉ định. Mặc định là 0.
Lợi nhuận:
-
Output
: (Các) đường chéo được trích xuất.
Người xây dựng và Người phá hủy | |
---|---|
MatrixDiagPartV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input k, :: tensorflow::Input padding_value) |
Thuộc tính công khai | |
---|---|
diagonal | |
operation |
Chức năng công cộng | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Thuộc tính công khai
đường chéo
::tensorflow::Output diagonal
hoạt động
Operation operation
Chức năng công cộng
MatrixDiagPartV2
MatrixDiagPartV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input k, ::tensorflow::Input padding_value )
nút
::tensorflow::Node * node() const
toán tử :: tensorflow :: Đầu vào
operator::tensorflow::Input() const
toán tử :: tensorflow :: Đầu ra
operator::tensorflow::Output() const