Для умножений, которые делаются на тензорах, превышающих ранг-2 (матрица), должно быть выполнено следующее условие, например, рассмотрим 2 тензора A
и B
A.shape=[a1,a2,a3...a8]
и B.shape=[b1,b2,b3... b8]
Хотя я не знаю, как происходит умножение матриц в pytorch, я ожидаю, что оно будет похоже на тензорный поток.
, если вы сделаете tf.matmul
в тензорном потоке, это умножит матричное умножение на (a7,a8)
и (b7,b8)
для этого требуется, чтобы a8
был равен b7
для операции A.B
, кроме того, также требуется, чтобы a1..a6
был равен b1..b6
Выходная форма будет [a1, a2...a7,b8]
Вышеуказанные 3 эквивалентны только в том смысле, что они просто сплющены на оси