Spec-Zone.ru › TensorFlow 2.4

tf.linalg.matvec

Просмотреть исходный код на GitHub

Умножает матрицу a на вектор b, получая a * b.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительных сведений.

tf.compat.v1.linalg.matvec

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:

output[..., i] = sum_k (a[..., i, k] * b[..., k]), для всех индексов i.

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API