RuntimeError при выполнении torch.matmul () - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь реализовать модель внимания, но не могу выполнить matmul

torch.matmul(att, v)

Форма att и v:

att shape:torch.Size([20, 3, 128, 128])
v shape:torch.Size([20, 3, 128, 100])

я получаю такую ​​ошибку :

RuntimeError: Ожидаемый тензор будет иметь размер 100 в измерении 1, но получил размер 128 для аргумента # 2 'batch2' (при проверке аргументов для bmm)

I также попытался создать два тензора с одинаковой формой с помощью torch.randn и повторить ту же операцию, и ошибки не возникло. Я не знаю, что делает такую ​​ошибку

1 Ответ

0 голосов
/ 29 апреля 2020

Возможно несоответствие выравнивания по памяти и форме. Если вы используете метод представления, вы можете обрабатывать тензорную форму по своему усмотрению. Но массив в памяти не изменяется. Это иногда вызывает неясную проблему. Так что contiguous () или reshape () могут вам помочь.

ref: https://pytorch.org/docs/master/tensors.html?highlight=view#torch .Tensor.view В чем разница между изменением формы и представлением в pytorch?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...