یک تانسور ماتریس دستهای را با مقادیر مورب دستهای جدید برمیگرداند.
با توجه به «ورودی» و «مورب»، این عملیات یک تانسور را با همان شکل و مقادیر «ورودی» برمیگرداند، به جز قطرهای مشخصشده درونیترین ماتریسها. اینها با مقادیر «مورب» بازنویسی خواهند شد.
«ورودی» دارای ابعاد «r+1» است «[I، J، ...، L، M، N]». وقتی «k» اسکالر یا «k[0] == k[1]» است، «مورب» دارای ابعاد «r» است «[I، J، ...، L، max_diag_len]». در غیر این صورت، دارای ابعاد «r+1» «[I، J، ...، L، num_diags، max_diag_len]» است. "num_diags" تعداد قطرها است، "num_diags = k[1] - k[0] + 1". «max_diag_len» طولانیترین مورب در محدوده «[k[0]، k[1]]»، «max_diag_len = min(M + min(k[1], 0)، N + min(-k[0]) است. , 0))`
خروجی تانسور رتبه «k+1» با ابعاد «[I، J، ...، L، M، N]» است. اگر «k» اسکالر یا «k[0] == k[1]» باشد:
output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, n-max(k[1], 0)] ; if n - m == k[1]
input[i, j, ..., l, m, n] ; otherwise
در غیر این صورت، output[i, j, ..., l, m, n]
= diagonal[i, j, ..., l, diag_index, index_in_diag] ; if k[0] <= d <= k[1]
input[i, j, ..., l, m, n] ; otherwise
جایی که "d = n - m"، "diag_index = k[1] - d"، و "index_in_diag = n - max(d, 0)".به عنوان مثال:
# The main diagonal.
input = np.array([[[7, 7, 7, 7], # Input shape: (2, 3, 4)
[7, 7, 7, 7],
[7, 7, 7, 7]],
[[7, 7, 7, 7],
[7, 7, 7, 7],
[7, 7, 7, 7]]])
diagonal = np.array([[1, 2, 3], # Diagonal shape: (2, 3)
[4, 5, 6]])
tf.matrix_set_diag(diagonal) ==> [[[1, 7, 7, 7], # Output shape: (2, 3, 4)
[7, 2, 7, 7],
[7, 7, 3, 7]],
[[4, 7, 7, 7],
[7, 5, 7, 7],
[7, 7, 6, 7]]]
# A superdiagonal (per batch).
tf.matrix_set_diag(diagonal, k = 1)
==> [[[7, 1, 7, 7], # Output shape: (2, 3, 4)
[7, 7, 2, 7],
[7, 7, 7, 3]],
[[7, 4, 7, 7],
[7, 7, 5, 7],
[7, 7, 7, 6]]]
# A band of diagonals.
diagonals = np.array([[[1, 2, 3], # Diagonal shape: (2, 2, 3)
[4, 5, 0]],
[[6, 1, 2],
[3, 4, 0]]])
tf.matrix_set_diag(diagonals, k = (-1, 0))
==> [[[1, 7, 7, 7], # Output shape: (2, 3, 4)
[4, 2, 7, 7],
[0, 5, 3, 7]],
[[6, 7, 7, 7],
[3, 1, 7, 7],
[7, 4, 2, 7]]]
روش های عمومی
خروجی <T> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
استاتیک <T> MatrixSetDiagV2 <T> | |
خروجی <T> | خروجی () رتبه «r+1»، با «output.shape = input.shape». |
روش های ارثی
روش های عمومی
خروجی عمومی <T> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
ایجاد عمومی MatrixSetDiagV2 <T> استاتیک ( دامنه دامنه ، ورودی عملوند <T>، عملوند <T> مورب، عملوند <عدد صحیح> k)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید MatrixSetDiagV2 را بسته بندی می کند.
پارامترها
دامنه | محدوده فعلی |
---|---|
ورودی | رتبه `r+1`، جایی که `r >= 1`. |
مورب | هنگامی که «k» یک عدد صحیح است یا «k[0] == k[1]» «r» را رتبه بندی کنید. در غیر این صورت دارای رتبه r+1 می باشد. `k>= 1`. |
ک | افست (های) مورب. مقدار مثبت به معنای ابر قطری، 0 به قطر اصلی و مقدار منفی به معنای قطرهای فرعی است. `k` می تواند یک عدد صحیح منفرد (برای یک مورب) یا یک جفت اعداد صحیح باشد که انتهای پایین و بالای یک باند ماتریس را مشخص می کند. «k[0]» نباید بزرگتر از «k[1]» باشد. |
برمی گرداند
- یک نمونه جدید از MatrixSetDiagV2