Spec-Zone.ru › TensorFlow

tf.linalg.matvec

Умножает матрицу 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
)

Используется в блокнотах

Используется в руководствах
  • Масштабируемое сжатие моделей
  • Обобщённые линейные модели
  • Руководство по многоруким бандитам в TF-Agents
  • Руководство по многоруким бандитам с признаками для каждого плеча
  • Значительное число незадокументированных случаев заражения способствует быстрому распространению нового коронавируса (SARS-CoV2)

Матрица 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,  139]
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.

© 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/api_docs/python/tf/linalg/matvec

Spec-Zone.ru

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