tensorflow :: ops :: MatrixDiagV2
#include <array_ops.h>
یک تانسور مورب دسته ای با مقادیر مورب دسته ای داده شده برمی گرداند.
خلاصه
یک تنسور را با محتویات diagonal
k[0]
به عنوان k[0]
-th به k[1]
-th مورب ماتریس برمی گرداند ، و همه موارد دیگر با padding
. num_rows
و num_cols
بعد داخلی ماتریس خروجی را مشخص می کند. اگر هر دو مشخص نشده باشند ، op فرض می کند که داخلی ترین ماتریس مربع است و اندازه آن را از k
و داخلی ترین بعد diagonal
. اگر فقط یکی از آنها مشخص شده باشد ، op بر اساس معیارهای دیگر مقدار نامشخص کوچکترین مقدار ممکن را در نظر می گیرد.
اجازه دهید diagonal
ابعاد r
باشد [I, J, ..., L, M, N]
. تنسور خروجی وقتی r+1
فقط 1 مورب داده می شود دارای درجه 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 output[i, j, ..., l, m, n] ; otherwise
در غیر این صورت ، M
به عنوان تعداد موربهای ماتریس در همان دسته ( M = k[1]-k[0]+1
) در نظر گرفته می شود و تانسور خروجی:
output[i, j, ..., l, m, n] = diagonal[i, j, ..., l, k[1]-d, n-max(d, 0)] ; if d_lower <= d <= d_upper input[i, j, ..., l, m, n] ; otherwiseکه
d = n - m
مثلا:
# 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 = 9. tf.matrix_diag(diagonal, k = -1, num_rows = 3, padding = 9) ==> [[9, 9], # Output shape: (3, 2) [1, 9], [9, 2]]
استدلال ها:
- دامنه: یک شی Sc Scope
- مورب: رتبه
r
، جایی کهr >= 1
- k: جبران (های) مورب مقدار مثبت به معنی superdiagonal است ، 0 به مورب اصلی و مقدار منفی به معنای subdiagonals است.
k
می تواند یک عدد صحیح واحد (برای یک مورب منفرد) یا یک جفت عدد صحیح باشد که انتهای کم و زیاد یک باند ماتریس را مشخص می کند.k[0]
نباید بزرگتر ازk[1]
. - num_rows: تعداد ردیف های ماتریس خروجی. اگر ارائه نشود ، op فرض می کند که ماتریس خروجی یک ماتریس مربع است و اندازه ماتریس را از k و داخلی ترین بعد
diagonal
. - num_cols: تعداد ستون های ماتریس خروجی. اگر ارائه نشود ، op فرض می کند که ماتریس خروجی یک ماتریس مربع است و اندازه ماتریس را از k و داخلی ترین بعد
diagonal
. - padding_value: عددی است که می تواند فضای خارج از باند مورب مشخص شده را با آن پر کند. پیش فرض 0 است.
بازده:
-
Output
: هنگامی کهk
یک عدد صحیح است ،r+1
دارد یا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 و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2020-04-20 بهوقت ساعت هماهنگ جهانی.