將矩陣 a
乘以向量 b
,產生 a
* b
。
用法
tf.linalg.matvec(
a, b, transpose_a=False, adjoint_a=False, a_is_sparse=False, b_is_sparse=False,
name=None
)
參數
-
a
Tensor
類型為float16
,float32
,float64
,int32
,complex64
,complex128
且排名 > 1。 -
b
Tensor
與a
具有相同的類型和兼容的尺寸。 -
transpose_a
如果True
,a
在乘法之前被轉置。 -
adjoint_a
如果True
,a
在乘法之前被共軛和轉置。 -
a_is_sparse
如果True
,a
被視為稀疏矩陣。 -
b_is_sparse
如果True
,b
被視為稀疏矩陣。 -
name
操作的名稱(可選)。
返回
-
A
Tensor
同類型的a
和b
其中每個 inner-most 向量是相應矩陣的乘積a
和向量b
,例如如果所有轉置或伴隨屬性都是False
:output
[..., i] = sum_k (a
[..., i, k] *b
[..., k]),對於所有索引 i。 -
Note
這是matrix-vector 產品,而不是元素產品。
拋出
-
ValueError
如果 transpose_a 和 adjoint_a 都設置為 True。
矩陣 a
在任何轉置之後必須是秩 >= 2 的張量,其中 shape(a)[-1] == shape(b)[-1]
和 shape(a)[:-2]
能夠使用 shape(b)[:-1]
進行廣播。
a
和b
必須是同一類型。支持的類型是:float16
, float32
, float64
, int32
, complex64
, complex128
。
矩陣 a
可以通過將相應標誌之一設置為 True
來動態轉置或連接(共軛和轉置)。默認情況下,這些是False
。
如果一個或兩個輸入包含很多零,則可以通過將相應的 a_is_sparse
或 b_is_sparse
標誌設置為 True
來使用更有效的乘法算法。默認情況下,這些是False
。此優化僅適用於數據類型為 bfloat16
或 float32
的普通矩陣/向量(rank-2/1 張量)。
例如:
# 2-D tensor `a`
# [[1, 2, 3],
# [4, 5, 6]]
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3])
# 1-D tensor `b`
# [7, 9, 11]
b = tf.constant([7, 9, 11], shape=[3])
# `a` * `b`
# [ 58, 64]
c = tf.linalg.matvec(a, b)
# 3-D tensor `a`
# [[[ 1, 2, 3],
# [ 4, 5, 6]],
# [[ 7, 8, 9],
# [10, 11, 12]]]
a = tf.constant(np.arange(1, 13, dtype=np.int32),
shape=[2, 2, 3])
# 2-D tensor `b`
# [[13, 14, 15],
# [16, 17, 18]]
b = tf.constant(np.arange(13, 19, dtype=np.int32),
shape=[2, 3])
# `a` * `b`
# [[ 86, 212],
# [410, 563]]
c = tf.linalg.matvec(a, b)
相關用法
- Python tf.linalg.matrix_transpose用法及代碼示例
- Python tf.linalg.matmul用法及代碼示例
- Python tf.linalg.LinearOperatorFullMatrix.matvec用法及代碼示例
- Python tf.linalg.LinearOperatorToeplitz.solve用法及代碼示例
- Python tf.linalg.LinearOperatorIdentity.solvevec用法及代碼示例
- Python tf.linalg.LinearOperatorPermutation.solve用法及代碼示例
- Python tf.linalg.band_part用法及代碼示例
- Python tf.linalg.LinearOperatorKronecker.diag_part用法及代碼示例
- Python tf.linalg.lu_matrix_inverse用法及代碼示例
- Python tf.linalg.LinearOperatorToeplitz.matvec用法及代碼示例
- Python tf.linalg.LinearOperatorBlockLowerTriangular.solvevec用法及代碼示例
- Python tf.linalg.LinearOperatorLowerTriangular.matvec用法及代碼示例
- Python tf.linalg.LinearOperatorCirculant2D.solve用法及代碼示例
- Python tf.linalg.LinearOperatorCirculant3D.diag_part用法及代碼示例
- Python tf.linalg.LinearOperatorToeplitz.solvevec用法及代碼示例
- Python tf.linalg.LinearOperatorCirculant2D.assert_non_singular用法及代碼示例
- Python tf.linalg.LinearOperatorPermutation.diag_part用法及代碼示例
- Python tf.linalg.LinearOperatorToeplitz用法及代碼示例
- Python tf.linalg.LinearOperatorCirculant2D.matvec用法及代碼示例
- Python tf.linalg.LinearOperatorTridiag.solvevec用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.linalg.matvec。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。