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