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


Python tf.linalg.tridiagonal_matmul用法及代碼示例

將三對角矩陣乘以矩陣。

用法

tf.linalg.tridiagonal_matmul(
    diagonals, rhs, diagonals_format='compact', name=None
)

參數

  • diagonals TensorTensor 的元組說明 left-hand 邊。形狀取決於 diagonals_format ,見上麵的說明。必須是 float32 , float64 , complex64complex128
  • rhs 形狀為 [..., M, N] 的 Tensor 並且具有與 diagonals 相同的 dtype。
  • diagonals_format sequencecompact 之一。默認為 compact
  • name 給此 Op 的名稱(可選)。

返回

  • 包含乘法結果的形狀為 [..., M, N] 的 Tensor

拋出

  • ValueError 提供不支持的類型作為輸入,或者當輸入張量的形狀不正確時。

diagonals 是 3 對角 NxN 矩陣的表示,它取決於 diagonals_format

matrix 格式中,diagonals 必須是形狀為 [..., M, M] 的張量,其中兩個 inner-most 維度代表三對角矩陣。三個對角線之外的元素將被忽略。

如果 sequence 格式,diagonals 是三個張量的列表或元組: [superdiag, maindiag, subdiag] ,每個具有形狀 [..., M]。 superdiag 的最後一個元素 subdiag 的第一個元素被忽略。

compact 格式中,三個對角線組合成一個形狀為 [..., 3, M] 的張量,最後兩個維度依次包含上對角線、對角線和下對角線。與sequence 格式類似,元素diagonals[..., 0, M-1]diagonals[..., 2, 0] 被忽略。

建議使用sequence 格式作為性能最佳的格式。

rhs 是乘法右邊的矩陣。它的形狀為 [..., M, N]

例子:

superdiag = tf.constant([-1, -1, 0], dtype=tf.float64)
maindiag = tf.constant([2, 2, 2], dtype=tf.float64)
subdiag = tf.constant([0, -1, -1], dtype=tf.float64)
diagonals = [superdiag, maindiag, subdiag]
rhs = tf.constant([[1, 1], [1, 1], [1, 1]], dtype=tf.float64)
x = tf.linalg.tridiagonal_matmul(diagonals, rhs, diagonals_format='sequence')

相關用法


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