جریان تنسور:: عملیات:: MatrixDiagV2
#include <array_ops.h>
یک تانسور مورب دستهای را با مقادیر مورب دستهای داده شده برمیگرداند.
خلاصه
تانسوری را با محتویات diagonal
به صورت k[0]
-th تا k[1]
-ام یک ماتریس برمیگرداند، و هر چیز دیگری با padding
پر شده است. num_rows
و num_cols
ابعاد داخلی ترین ماتریس خروجی را مشخص می کنند. اگر هر دو مشخص نشده باشند، op درونیترین ماتریس را مربع فرض میکند و اندازه آن را از k
و درونیترین بعد diagonal
استنتاج میکند. اگر فقط یکی از آنها مشخص شده باشد، op فرض می کند که مقدار نامشخص بر اساس معیارهای دیگر کوچکترین مقدار ممکن است.
فرض کنید diagonal
دارای ابعاد r
باشد [I, J, ..., L, M, N]
. تانسور خروجی دارای رتبه r+1
با شکل [I, J, ..., L, M, num_rows, num_cols]
که فقط یک مورب داده شود ( k
یک عدد صحیح است یا k[0] == k[1]
) . در غیر این صورت دارای رتبه 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 ; otherwise
d = 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]]
استدلال ها:
- scope: یک شی Scope
- مورب: رتبه
r
، جایی کهr >= 1
- k: افست (های) مورب. مقدار مثبت به معنای ابر قطری، 0 به قطر اصلی و مقدار منفی به معنای قطرهای فرعی است.
k
می تواند یک عدد صحیح منفرد (برای یک مورب) یا یک جفت اعداد صحیح باشد که انتهای پایین و بالای یک باند ماتریس را مشخص می کند.k[0]
نباید بزرگتر ازk[1]
باشد. - num_rows: تعداد ردیف های ماتریس خروجی. اگر ارائه نشده باشد، عملیات ماتریس خروجی را یک ماتریس مربع فرض میکند و اندازه ماتریس را از k و درونیترین بعد
diagonal
استنتاج میکند. - num_cols: تعداد ستون های ماتریس خروجی. اگر ارائه نشده باشد، عملیات ماتریس خروجی را یک ماتریس مربع فرض میکند و اندازه ماتریس را از k و درونیترین بعد
diagonal
استنتاج میکند. - padding_value: عددی که باید ناحیه خارج از نوار مورب مشخص شده را پر کنید. پیش فرض 0 است.
برمیگرداند:
-
Output
: دارای رتبهr+1
زمانی کهk
یک عدد صحیح باشد یاk[0] == k[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
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 و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-11-19 بهوقت ساعت هماهنگ جهانی.