tf.linalg.matvec
| Посмотреть исходный код на GitHub |
Умножает матрицу 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 должна, после любых транспонирований, быть тензором ранга >= 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. Это оптимизация доступна только для обычных матриц/векторов (тензоры ранга 2/1) с типами данных bfloat16 или 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.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)
| Аргументы | |
|---|---|
a |
Матрица типа float16, float32, float64, int32, complex64, complex128 и ранга > 1. |
b |
Вектор с тем же типом, что и a, и совместимыми размерами. |
transpose_a |
Если True, a транспонируется перед умножением. |
adjoint_a |
Если True, a сопрягается и транспонируется перед умножением. |
a_is_sparse |
Если True, a обрабатывается как разреженная матрица. |
b_is_sparse |
Если True, b обрабатывается как разреженная матрица. |
name |
Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Тензор того же типа, что и a и b, где каждый внутренний вектор является результатом умножения соответствующих матриц в a и векторов в b, например, если все атрибуты транспонирования или сопряжения False:
|
|
Note |
Это матрично-векторное произведение, а не поэлементное. |
| Исключения | |
|---|---|
ValueError |
Если transpose_a и adjoint_a оба установлены в 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/r2.3/api_docs/python/tf/linalg/matvec