Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
dòng chảy căng:: ôi:: Ma TrậnDiagPartV2
#include <array_ops.h>
Trả về phần đường chéo theo đợt của một tenxơ theo đợt.
Bản tóm tắt
Trả về một tenxơ có đường chéo k[0]
-th đến k[1]
- của input
đợt .
Giả sử input
có r
kích thước [I, J, ..., L, M, N]
. Đặt max_diag_len
là độ dài tối đa 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 cần giải nén, num_diags = k[1] - k[0] + 1
.
Nếu num_diags == 1
, tensor đầu ra có 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)
.
Ngược lại, tenxơ đầu ra có 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]]]
Lập 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) khoảng lệch chéo. Giá trị dương có nghĩa là đường chéo lớn, 0 là đường chéo chính và giá trị âm có nghĩa là đường chéo phụ.
k
có thể là một số nguyên đơn (đối với một đường chéo) hoặc một cặp số nguyên xác định đầu dưới và đầu cao của dải ma trận. k[0]
không được lớn hơn k[1]
. - đệm_value: Giá trị để lấp đầy vùng bên ngoài dải chéo được chỉ định. Mặc định là 0.
Trả về:
-
Output
: (Các) đường chéo được trích xuất.
Thuộc tính công khai
Chức năng công cộng
nút
::tensorflow::Node * node() const
operator::tensorflow::Input() const
toán tử::tenorflow::Đầu ra
operator::tensorflow::Output() const
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# tensorflow::ops::MatrixDiagPartV2 Class Reference\n\ntensorflow::ops::MatrixDiagPartV2\n=================================\n\n`#include \u003carray_ops.h\u003e`\n\nReturns the batched diagonal part of a batched tensor.\n\nSummary\n-------\n\nReturns a tensor with the `k[0]`-th to `k[1]`-th diagonals of the batched `input`.\n\nAssume `input` has `r` dimensions `[I, J, ..., L, M, N]`. Let `max_diag_len` be the maximum length among all diagonals to be extracted, `max_diag_len = min(M + min(k[1], 0), N + min(-k[0], 0))` Let `num_diags` be the number of diagonals to extract, `num_diags = k[1] - k[0] + 1`.\n\nIf `num_diags == 1`, the output tensor is of rank `r - 1` with shape `[I, J, ..., L, max_diag_len]` and values:\n\n\u003cbr /\u003e\n\n```scdoc\ndiagonal[i, j, ..., l, n]\n = input[i, j, ..., l, n+y, n+x] ; if 0 \u003c= n+y \u003c M and 0 \u003c= n+x \u003c N,\n padding_value ; otherwise.\n```\nwhere `y = max(-k[1], 0)`, `x = max(k[1], 0)`.\n\n\u003cbr /\u003e\n\nOtherwise, the output tensor has rank `r` with dimensions `[I, J, ..., L, num_diags, max_diag_len]` with values:\n\n\u003cbr /\u003e\n\n```scdoc\ndiagonal[i, j, ..., l, m, n]\n = input[i, j, ..., l, n+y, n+x] ; if 0 \u003c= n+y \u003c M and 0 \u003c= n+x \u003c N,\n padding_value ; otherwise.\n```\nwhere `d = k[1] - m`, `y = max(-d, 0)`, and `x = max(d, 0)`.\n\n\u003cbr /\u003e\n\nThe input must be at least a matrix.\n\nFor example:\n\n\n```text\ninput = np.array([[[1, 2, 3, 4], # Input shape: (2, 3, 4)\n [5, 6, 7, 8],\n [9, 8, 7, 6]],\n [[5, 4, 3, 2],\n [1, 2, 3, 4],\n [5, 6, 7, 8]]])\n```\n\n\u003cbr /\u003e\n\n\n```scdoc\n# A main diagonal from each batch.\ntf.matrix_diag_part(input) ==\u003e [[1, 6, 7], # Output shape: (2, 3)\n [5, 2, 7]]\n```\n\n\u003cbr /\u003e\n\n\n```scdoc\n# A superdiagonal from each batch.\ntf.matrix_diag_part(input, k = 1)\n ==\u003e [[2, 7, 6], # Output shape: (2, 3)\n [4, 3, 8]]\n```\n\n\u003cbr /\u003e\n\n\n```scdoc\n# A tridiagonal band from each batch.\ntf.matrix_diag_part(input, k = (-1, 1))\n ==\u003e [[[2, 7, 6], # Output shape: (2, 3, 3)\n [1, 6, 7],\n [5, 8, 0]],\n [[4, 3, 8],\n [5, 2, 7],\n [1, 6, 0]]]\n```\n\n\u003cbr /\u003e\n\n\n```scdoc\n# Padding value = 9\ntf.matrix_diag_part(input, k = (1, 3), padding_value = 9)\n ==\u003e [[[4, 9, 9], # Output shape: (2, 3, 3)\n [3, 8, 9],\n [2, 7, 6]],\n [[2, 9, 9],\n [3, 4, 9],\n [4, 3, 8]]]\n```\n\n\u003cbr /\u003e\n\nArguments:\n\n- scope: A [Scope](/versions/r2.2/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- input: Rank `r` tensor where `r \u003e= 2`.\n- k: Diagonal offset(s). Positive value means superdiagonal, 0 refers to the main diagonal, and negative value means subdiagonals. `k` can be a single integer (for a single diagonal) or a pair of integers specifying the low and high ends of a matrix band. `k[0]` must not be larger than `k[1]`.\n- padding_value: The value to fill the area outside the specified diagonal band with. Default is 0.\n\n\u003cbr /\u003e\n\nReturns:\n\n- [Output](/versions/r2.2/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output): The extracted diagonal(s).\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [MatrixDiagPartV2](#classtensorflow_1_1ops_1_1_matrix_diag_part_v2_1ad3de7ab4ab1196ff0eb0a0b9712563ef)`(const ::`[tensorflow::Scope](/versions/r2.2/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r2.2/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input, ::`[tensorflow::Input](/versions/r2.2/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` k, ::`[tensorflow::Input](/versions/r2.2/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` padding_value)` ||\n\n| ### Public attributes ||\n|-------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [diagonal](#classtensorflow_1_1ops_1_1_matrix_diag_part_v2_1a7a8892ae88249cf5f89b97544d71a59c) | `::`[tensorflow::Output](/versions/r2.2/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n| [operation](#classtensorflow_1_1ops_1_1_matrix_diag_part_v2_1aefc836bb535eab5db669667a152eba42) | [Operation](/versions/r2.2/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n\n| ### Public functions ||\n|-------------------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_matrix_diag_part_v2_1a0b20ceb05713921670ce29cf7671a152)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_matrix_diag_part_v2_1acb91e8a485455813fcd8d9d3558c793b)`() const ` | ` ` ` ` |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_matrix_diag_part_v2_1a18e6d0e922c930c2880112f18f2ac011)`() const ` | ` ` ` ` |\n\nPublic attributes\n-----------------\n\n### diagonal\n\n```text\n::tensorflow::Output diagonal\n``` \n\n### operation\n\n```text\nOperation operation\n``` \n\nPublic functions\n----------------\n\n### MatrixDiagPartV2\n\n```gdscript\n MatrixDiagPartV2(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input input,\n ::tensorflow::Input k,\n ::tensorflow::Input padding_value\n)\n``` \n\n### node\n\n```gdscript\n::tensorflow::Node * node() const \n``` \n\n### operator::tensorflow::Input\n\n```gdscript\n operator::tensorflow::Input() const \n``` \n\n### operator::tensorflow::Output\n\n```gdscript\n operator::tensorflow::Output() const \n```"]]