یک تانسور مورب دستهای را با مقادیر مورب دستهای داده شده برمیگرداند.
تانسوری را با محتویات «مورب» به صورت قطرهای «k[0]»-th به «k[1]»-امین یک ماتریس برمیگرداند و هر چیز دیگری با «padding» پر شده است. 'num_rows' و 'num_cols' بعد داخلی ترین ماتریس خروجی را مشخص می کنند. اگر هر دو مشخص نشده باشند، op داخلیترین ماتریس را مربع فرض میکند و اندازه آن را از «k» و درونیترین بعد «مورب» استنباط میکند. اگر فقط یکی از آنها مشخص شده باشد، op فرض می کند که مقدار نامشخص بر اساس معیارهای دیگر کوچکترین مقدار ممکن است.
اجازه دهید «مورب» دارای ابعاد «r» باشد «[I، J، ...، L، M، N]». تانسور خروجی دارای رتبه «r+1» با شکل «[I، J، ...، L، M، تعداد_ردیفها، num_cols]» است که فقط یک قطر داده شود (k» یک عدد صحیح است یا «k[0] == k[1]`). در غیر این صورت، دارای رتبه «r» با شکل «[I، J، ...، L، num_rows، num_cols]» است.
دومین بعد درونی «مورب» معنایی دوگانه دارد. وقتی `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]]
روش های عمومی
خروجی <T> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
شخص <T> MatrixDiagV2 <T> | |
خروجی <T> | خروجی () دارای رتبه «r+1» وقتی «k» یک عدد صحیح است یا «k[0] == k[1]»، در غیر این صورت «r» را رتبه بندی کنید. |
روش های ارثی
روش های عمومی
عمومی خروجی <T> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
عمومی استاتیک MatrixDiagV2 <T> ایجاد ( محدوده دامنه، عملوند <T> مورب، عملوند <صحیح> K، عملوند <صحیح> numRows، عملوند <صحیح> numCols، عملوند <T> paddingValue)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید MatrixDiagV2 را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
مورب | رتبه `r`، جایی که `r >= 1` |
ک | افست (های) مورب. مقدار مثبت به معنای ابر قطری، 0 به قطر اصلی و مقدار منفی به معنای قطرهای فرعی است. `k` می تواند یک عدد صحیح منفرد (برای یک مورب) یا یک جفت اعداد صحیح باشد که انتهای پایین و بالای یک باند ماتریس را مشخص می کند. «k[0]» نباید بزرگتر از «k[1]» باشد. |
numRows | تعداد ردیف های ماتریس خروجی. اگر ارائه نشده باشد، عملیات ماتریس خروجی را یک ماتریس مربع فرض میکند و اندازه ماتریس را از k و درونیترین بعد «مورب» استنتاج میکند. |
numCols | تعداد ستون های ماتریس خروجی اگر ارائه نشده باشد، عملیات ماتریس خروجی را یک ماتریس مربع فرض میکند و اندازه ماتریس را از k و درونیترین بعد «مورب» استنتاج میکند. |
paddingValue | عددی که باید ناحیه خارج از نوار مورب مشخص شده را با آن پر کنید. پیش فرض 0 است. |
برمی گرداند
- یک نمونه جدید از MatrixDiagV2
عمومی خروجی <T> خروجی ()
دارای رتبه «r+1» وقتی «k» یک عدد صحیح است یا «k[0] == k[1]»، در غیر این صورت «r» را رتبه بندی کنید.