Как умножить матрицы k 2x2 на матрицы k 2x2 в тензорном потоке? - PullRequest
0 голосов
/ 01 июля 2018

У меня есть 2 3D тензора в тензорном потоке, где два тензора имеют форму Kx2x2. Тензоры представляют собой набор матриц 2x2. Есть ли способ умножить матрицы 2x2 в первом тензоре на соответствующую матрицу во втором, чтобы в конце я получил тензор Kx2x2?

Ответы [ 2 ]

0 голосов
/ 01 июля 2018

Вы можете сделать tf.matmul (a, b).

Согласно тензорной документации,

tf.matmul возвращает: Тензор того же типа, что и a и b, где каждая самая внутренняя матрица является произведением соответствующих матриц в a и b.

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

https://www.tensorflow.org/api_docs/python/tf/matmul

0 голосов
/ 01 июля 2018

tf.matmul - правильный оператор для умножения матриц. Если размер тензора больше 2, то внутренние 2 задают форму матрицы. Следовательно, форма двух тензоров должна быть [a 1, a 2 , ..., a n , x, y] и [a 1, a 2 , ..., a n , y, z] соответственно ([K, 2, 2] в случае ОП).

Пример кода

# Suppose X and Y are two tensors of the shape [K, 2, 2]
result = tf.matmul(X, Y)
...