tensorflow:: عملیات:: MatrixDiagV2
#include <array_ops.h>یک تانسور قطری دسته بندی شده با مقادیر قطری دسته بندی شده داده شده را برمیگرداند.
خلاصه
یک تانسور با محتویات diagonal به صورت k[0] -ام تا k[1] -ام یک ماتریس را برمیگرداند، و هر چیز دیگری با padding پر شده است. num_rows و num_cols بُعد درونیترین ماتریس خروجی را مشخص میکنند. اگر هر دو مشخص نشده باشند، op فرض میکند که درونیترین ماتریس مربع است و اندازه آن را از k و درونیترین بُعد diagonal استنباط میکند. اگر فقط یکی از آنها مشخص شده باشد، op فرض میکند که مقدار نامشخص، بر اساس معیارهای دیگر، کوچکترین مقدار ممکن است.
فرض کنید diagonal دارای r بُعد [I, J, ..., L, M, N] باشد. تانسور خروجی وقتی فقط یک قطر داده شده باشد ( k یک عدد صحیح باشد یا k[0] == k[1] r+1 با شکل [I, J, ..., L, M, num_rows, num_cols] است. در غیر این صورت، دارای رتبه r با شکل [I, J, ..., L, num_rows, num_cols] است.
دومین بُعد داخلی diagonal ، معنای دوگانهای دارد. وقتی k اسکالر یا k[0] == k[1] باشد، M بخشی از اندازه دسته [I، J، ...، M] است و تانسور خروجی به صورت زیر است:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, n-max(d_upper, 0)] ; if n - m == d_upper
padding_value ; otherwise در غیر این صورت، M به عنوان تعداد قطرهای ماتریس در همان دسته در نظر گرفته میشود ( M = k[1]-k[0]+1 )، و تانسور خروجی به صورت زیر است:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
padding_value ; otherwised = n - m ، diag_index = k[1] - d و index_in_diag = n - max(d, 0) .برای مثال:
# 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]]
استدلالها:
- دامنه: یک شیء دامنه
- قطری: رتبه
r، که در آنr >= 1 - k: آفست(های) قطری. مقدار مثبت به معنای فوق قطری، 0 به قطر اصلی و مقدار منفی به معنای زیرقطرها است.
kمیتواند یک عدد صحیح (برای یک قطر واحد) یا یک جفت عدد صحیح باشد که انتهای پایین و بالای یک نوار ماتریس را مشخص میکنند.k[0]نباید بزرگتر ازk[1]باشد. - num_rows: تعداد سطرهای ماتریس خروجی. اگر ارائه نشود، تابع فرض میکند که ماتریس خروجی یک ماتریس مربعی است و اندازه ماتریس را از k و داخلیترین بُعد
diagonalاستنباط میکند. - num_cols: تعداد ستونهای ماتریس خروجی. اگر ارائه نشود، تابع op فرض میکند که ماتریس خروجی یک ماتریس مربعی است و اندازه ماتریس را از k و داخلیترین بُعد
diagonalاستنباط میکند. - padding_value: عددی که باید ناحیه خارج از نوار مورب مشخص شده را با آن پر کنید. مقدار پیشفرض ۰ است.
بازده:
-
Output: وقتیkیک عدد صحیح یاk[0] == k[1]باشد، رتبهr+1را دارد، در غیر این صورت رتبهrرا دارد.
سازندهها و مخربها | |
|---|---|
MatrixDiagV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input diagonal, :: tensorflow::Input k, :: tensorflow::Input num_rows, :: tensorflow::Input num_cols, :: tensorflow::Input padding_value) |
ویژگیهای عمومی | |
|---|---|
operation | |
output | |
کارکردهای عمومی | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
ویژگیهای عمومی
عملیات
Operation operation
خروجی
::tensorflow::Output output
کارکردهای عمومی
ماتریس دیاگ وی۲
MatrixDiagV2( const ::tensorflow::Scope & scope, ::tensorflow::Input diagonal, ::tensorflow::Input k, ::tensorflow::Input num_rows, ::tensorflow::Input num_cols, ::tensorflow::Input padding_value )
گره
::tensorflow::Node * node() const
عملگر::tensorflow::ورودی
operator::tensorflow::Input() const
عملگر::tensorflow::خروجی
operator::tensorflow::Output() const
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2026-11-05 بهوقت ساعت هماهنگ جهانی.