Функция matmul
Функция matmul выполняет матричное умножение
двух тензоров. Первым параметром функция принимает
первый тензор, вторым параметром - второй тензор.
Третьим параметром можно передать флаг
transpose_a, который транспонирует первый
тензор перед умножением. Четвертым параметром
можно передать флаг transpose_b, который
транспонирует второй тензор перед умножением.
Операция следует правилам линейной алгебры:
число столбцов первого тензора должно совпадать
с числом строк второго тензора.
Синтаксис
tf.matmul(a, b, [transpose_a], [transpose_b])
Пример
Давайте перемножим две матрицы размером
2x3 и 3x2:
import tensorflow as tf
a = tf.constant([[1, 2, 3], [4, 5, 6]])
b = tf.constant([[1, 2], [3, 4], [5, 6]])
res = tf.matmul(a, b)
print(res)
Результат выполнения кода:
tf.Tensor(
[[22 28]
[49 64]], shape=(2, 2), dtype=int32)
Пример
Давайте перемножим два вектора. Вектор-строка умножается на вектор-столбец, результатом будет скаляр:
import tensorflow as tf
a = tf.constant([1, 2, 3])
b = tf.constant([4, 5, 6])
res = tf.matmul(a, b)
print(res)
Результат выполнения кода:
tf.Tensor(32, shape=(), dtype=int32)
Пример
Давайте используем флаг transpose_a,
чтобы транспонировать первую матрицу перед
умножением:
import tensorflow as tf
a = tf.constant([[1, 4], [2, 5], [3, 6]])
b = tf.constant([[1, 2], [3, 4], [5, 6]])
res = tf.matmul(a, b, transpose_a=True)
print(res)
Результат выполнения кода:
tf.Tensor(
[[22 28]
[49 64]], shape=(2, 2), dtype=int32)
Пример
Давайте перемножим матрицу и вектор:
import tensorflow as tf
a = tf.constant([[1, 2, 3], [4, 5, 6]])
b = tf.constant([1, 2, 3])
res = tf.matmul(a, b)
print(res)
Результат выполнения кода:
tf.Tensor([14 32], shape=(2,), dtype=int32)