Spec-Zone.ru › TensorFlow 2.9

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 Имя операции (необязательно).
Возвращает
Тензор того же типа, что и a и b , где каждый внутренний вектор является результатом умножения соответствующих матриц в a и векторов в b, например, если все атрибуты транспонирования или сопряжения False:

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

Note Это произведение матрицы на вектор, а не поэлементное произведение.
Возможные ошибки
ValueError Если transpose_a и adjoint_a оба установлены в True.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/linalg/matvec

Spec-Zone.ru

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