View source on GitHub |
Multiplies matrix a
by vector b
, producing a
* b
.
tf.linalg.matvec( a, b, transpose_a=False, adjoint_a=False, a_is_sparse=False, b_is_sparse=False, name=None )
The matrix a
must, following any transpositions, be a tensor of rank >= 2, and we must have shape(b) = shape(a)[:-2] + [shape(a)[-1]]
.
Both a
and b
must be of the same type. The supported types are: float16
, float32
, float64
, int32
, complex64
, complex128
.
Matrix a
can be transposed or adjointed (conjugated and transposed) on the fly by setting one of the corresponding flag to True
. These are False
by default.
If one or both of the inputs contain a lot of zeros, a more efficient multiplication algorithm can be used by setting the corresponding a_is_sparse
or b_is_sparse
flag to True
. These are False
by default. This optimization is only available for plain matrices/vectors (rank-2/1 tensors) with datatypes bfloat16
or float32
.
# 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.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.matvec(a, b)
Args | |
---|---|
a | Tensor of type float16 , float32 , float64 , int32 , complex64 , complex128 and rank > 1. |
b | Tensor with same type and rank = rank(a) - 1 . |
transpose_a | If True , a is transposed before multiplication. |
adjoint_a | If True , a is conjugated and transposed before multiplication. |
a_is_sparse | If True , a is treated as a sparse matrix. |
b_is_sparse | If True , b is treated as a sparse matrix. |
name | Name for the operation (optional). |
Returns | |
---|---|
A Tensor of the same type as a and b where each inner-most vector is the product of the corresponding matrices in a and vectors in b , e.g. if all transpose or adjoint attributes are False :
| |
Note | This is matrix-vector product, not element-wise product. |
Raises | |
---|---|
ValueError | If transpose_a and adjoint_a are both set to True. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/linalg/matvec