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 | 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 | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Тензор Tensor того же типа, что и 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.4/api_docs/python/tf/linalg/matvec