Полностью соединенные слои с неснятым входом - PullRequest
0 голосов
/ 02 января 2019
(batch_size, 70, 2, 2) -> Linear(2, 2)

(batch_size, 140, 2) -> Linear(2, 2)

(batch_size, 280) -> Linear(280, 2)

Может кто-нибудь объяснить мне, как Fully Connected слои работают с не сплющенными входными данными?Я действительно не знаю, как думать о> 2D матричном умножении.Все ли вышеперечисленное эквивалентно?(Linear - это полностью подключенный модуль в pytorch)

1 Ответ

0 голосов
/ 02 января 2019

Для умножений, которые делаются на тензорах, превышающих ранг-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 эквивалентны только в том смысле, что они просто сплющены на оси

...