هشدار: این API منسوخ شده است و پس از پایدار شدن جایگزینی، در نسخه بعدی TensorFlow حذف خواهد شد.

MatrixDiagPartV3

عمومی MatrixDiagPartV3 کلاس نهایی

قسمت مورب دسته بندی شده یک تانسور دسته بندی شده را برمی گرداند.

تانسوری را با قطرهای «k[0]»-th به «k[1]»-امین «ورودی» دسته‌ای برمی‌گرداند.

فرض کنید «ورودی» دارای ابعاد «r» است «[I، J، ...، L، M، N]». اجازه دهید «max_diag_len» حداکثر طول در بین تمام قطرهایی باشد که باید استخراج شوند، «max_diag_len = min(M + min(k[1], 0)، N + min(-k[0], 0))» اجازه دهید «num_diags» تعداد قطرهایی که باید استخراج شود، "num_diags = k[1] - k[0] + 1" باشد.

اگر `num_diags == 1`، تانسور خروجی است از رتبه` R - 1` با شکل `[I، J، ...، L، max_diag_len]` و ارزش:

diagonal[i, j, ..., l, n]
   = input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
     padding_value                 ; otherwise.
 
که در آن `و y = حداکثر (-k [1]، 0)`، «x = max(k[1]، 0)».

در غیر این صورت، تانسور خروجی رتبه `r` با ابعاد` [I، J، ...، L، num_diags، max_diag_len] `با ارزش:

diagonal[i, j, ..., l, m, n]
   = input[i, j, ..., l, n+y, n+x] ; if 0 <= n+y < M and 0 <= n+x < N,
     padding_value                 ; otherwise.
 
که در آن` د = K [1] - m`، `= Y max(-d, 0) - offset` و `x = max(d, 0) - offset`.

"offset" صفر است مگر زمانی که تراز مورب به سمت راست باشد.

offset = max_diag_len - diag_len(d) ; if (`align` in {RIGHT_LEFT, RIGHT_RIGHT
                                            and `d >= 0`) or
                                          (`align` in {LEFT_RIGHT, RIGHT_RIGHT}
                                            and `d <= 0`)
          0                          ; otherwise
 }
که در آن `diag_len (D) = MIN (گذرگاه - حداکثر (د، 0)، ردیف + دقیقه (د، 0))`.

ورودی باید حداقل یک ماتریس باشد.

به عنوان مثال:

input = np.array([[[1, 2, 3, 4],  # Input shape: (2, 3, 4)
                    [5, 6, 7, 8],
                    [9, 8, 7, 6]],
                   [[5, 4, 3, 2],
                    [1, 2, 3, 4],
                    [5, 6, 7, 8]]])
 
 # A main diagonal from each batch.
 tf.matrix_diag_part(input) ==> [[1, 6, 7],  # Output shape: (2, 3)
                                 [5, 2, 7]]
 
 # A superdiagonal from each batch.
 tf.matrix_diag_part(input, k = 1)
   ==> [[2, 7, 6],  # Output shape: (2, 3)
        [4, 3, 8]]
 
 # A band from each batch.
 tf.matrix_diag_part(input, k = (-1, 2))
   ==> [[[0, 3, 8],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [5, 8, 0]],
        [[0, 3, 4],
         [4, 3, 8],
         [5, 2, 7],
         [1, 6, 0]]]
 
 # LEFT_RIGHT alignment.
 tf.matrix_diag_part(input, k = (-1, 2), align="LEFT_RIGHT")
   ==> [[[3, 8, 0],  # Output shape: (2, 4, 3)
         [2, 7, 6],
         [1, 6, 7],
         [0, 5, 8]],
        [[3, 4, 0],
         [4, 3, 8],
         [5, 2, 7],
         [0, 1, 6]]]
 
 # max_diag_len can be shorter than the main diagonal.
 tf.matrix_diag_part(input, k = (-2, -1))
   ==> [[[5, 8],
         [9, 0]],
        [[1, 6],
         [5, 0]]]
 
 # padding_value = 9
 tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
   ==> [[[9, 9, 4],  # Output shape: (2, 3, 3)
         [9, 3, 8],
         [2, 7, 6]],
        [[9, 9, 2],
         [9, 3, 4],
         [4, 3, 8]]]
 
 

کلاس های تو در تو

کلاس MatrixDiagPartV3.Options ویژگی اختیاری برای MatrixDiagPartV3

روش های عمومی

شخص MatrixDiagPartV3.Options
چین (چین رشته)
خروجی <T>
asOutput ()
دسته نمادین یک تانسور را برمی‌گرداند.
شخص <T> MatrixDiagPartV3 <T>
ایجاد ( محدوده دامنه، عملوند <T> ورودی، عملوند <صحیح> K، عملوند <T> paddingValue، گزینه ها ... گزینه ها)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید MatrixDiagPartV3 را بسته بندی می کند.
خروجی <T>
مورب ()
قطر(های) استخراج شده

روش های ارثی

روش های عمومی

عمومی استاتیک MatrixDiagPartV3.Options چین (چین رشته)

مولفه های
تراز کردن برخی از مورب‌ها کوتاه‌تر از «max_diag_len» هستند و باید به آن‌ها اضافه شوند. "align" رشته ای است که مشخص می کند به ترتیب چگونه ابر قطرها و زیر قطرها باید تراز شوند. چهار تراز احتمالی وجود دارد: «RIGHT_LEFT» (پیش‌فرض)، «LEFT_RIGHT»، «LEFT_LEFT» و «RIGHT_RIGHT». "RIGHT_LEFT" ابرمورب ها را به سمت راست تراز می کند (ردیف را به سمت چپ قرار می دهد) و قطرهای فرعی را در سمت چپ (راست روی ردیف قرار می دهد). این فرمت بسته بندی است که LAPACK از آن استفاده می کند. cuSPARSE از "LEFT_RIGHT" استفاده می کند که تراز مخالف است.

عمومی خروجی <T> asOutput ()

دسته نمادین یک تانسور را برمی‌گرداند.

ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.

عمومی استاتیک MatrixDiagPartV3 <T> ایجاد ( محدوده دامنه، عملوند <T> ورودی، عملوند <صحیح> K، عملوند <T> paddingValue، گزینه ها ... گزینه ها)

روش کارخانه برای ایجاد کلاسی که یک عملیات جدید MatrixDiagPartV3 را بسته بندی می کند.

مولفه های
محدوده محدوده فعلی
ورودی تانسور `r` در جایی که `r >= 2` رتبه بندی کنید.
ک افست (های) مورب. مقدار مثبت به معنای ابر قطری، 0 به قطر اصلی و مقدار منفی به معنای قطرهای فرعی است. `k` می تواند یک عدد صحیح منفرد (برای یک مورب) یا یک جفت اعداد صحیح باشد که انتهای پایین و بالای یک باند ماتریس را مشخص می کند. «k[0]» نباید بزرگتر از «k[1]» باشد.
paddingValue مقداری که باید ناحیه خارج از نوار مورب مشخص شده را با آن پر کنید. پیش فرض 0 است.
گزینه ها مقادیر ویژگی های اختیاری را حمل می کند
برمی گرداند
  • یک نمونه جدید از MatrixDiagPartV3

عمومی خروجی <T> مورب ()

قطر(های) استخراج شده