Попытка замаскировать тензор с другим тензором того же измерения, получая «индекс 1 выходит за пределы для измерения 0 с размером 1» - PullRequest
0 голосов
/ 07 января 2020
    attn_weights = F.softmax(self.attn(torch.cat((input, hidden_cat), 2)), dim=2)
    attn_weights[mask] = float('-inf')
    attn_applied = torch.bmm(attn_weights.transpose(0,1),encoder_outputs.transpose(0,1)).transpose(0,1)
    attn_output = torch.cat((input, attn_applied), 2)

Поэтому я пытаюсь установить все индексы в маске, которые равны 1 отрицательной бесконечности, но эта строка

attn_weights[mask] = float('-inf')

продолжает выбрасывать это исключение "индекс 1 выходит за пределы для измерение 0 с размером 1 "не совсем уверен, что происходит attn_weights и маска имеют одинаковое измерение, которое составляет 1 x 2048 x 40.

1 Ответ

0 голосов
/ 07 января 2020

получается, что dtype для тензора маски должен быть torch.uint8 или torch.bool У меня был torch.long

...