當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.raw_ops.MatrixDiagPartV2用法及代碼示例


返回批量張量的批量對角線部分。

用法

tf.raw_ops.MatrixDiagPartV2(
    input, k, padding_value, name=None
)

參數

  • input 一個Tensor。排名 r 張量,其中 r >= 2
  • k Tensor 類型為 int32 。對角線偏移。正值表示上對角線,0 表示主對角線,負值表示次對角線。 k 可以是單個整數(用於單個對角線)或一對整數,指定矩陣帶的低端和高端。 k[0] 不得大於 k[1]
  • padding_value 一個Tensor。必須與 input 具有相同的類型。用於填充指定對角帶之外區域的值。默認值為 0。
  • name 操作的名稱(可選)。

返回

  • 一個Tensor。具有與 input 相同的類型。

返回具有 k[0] -th 到 k[1] -th 批處理 input 對角線的張量。

假設 input 具有 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 = max(-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.

其中 d = k[1] - m , y = max(-d, 0)x = max(d, 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 tridiagonal band from each batch.
tf.matrix_diag_part(input, k = (-1, 1))
  ==> [[[2, 7, 6],  # Output shape:(2, 3, 3)
        [1, 6, 7],
        [5, 8, 0]],
       [[4, 3, 8],
        [5, 2, 7],
        [1, 6, 0]]]

# Padding value = 9
tf.matrix_diag_part(input, k = (1, 3), padding_value = 9)
  ==> [[[4, 9, 9],  # Output shape:(2, 3, 3)
        [3, 8, 9],
        [2, 7, 6]],
       [[2, 9, 9],
        [3, 4, 9],
        [4, 3, 8]]]

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.raw_ops.MatrixDiagPartV2。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。