Я делаю следующую операцию,
energy.masked_fill(mask == 0, float("-1e20"))
мои следы питона ниже,
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "seq_sum.py", line 418, in forward
enc_src = self.encoder(src, src_mask)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "seq_sum.py", line 71, in forward
src = layer(src, src_mask)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "seq_sum.py", line 110, in forward
_src, _ = self.self_attention(src, src, src, src_mask)
File "/usr/local/lib/python3.6/dist-packages/torch/nn/modules/module.py", line 722, in _call_impl
result = self.forward(*input, **kwargs)
File "seq_sum.py", line 191, in forward
energy = energy.masked_fill(mask == 0, float("-1e20"))
RuntimeError: The size of tensor a (1024) must match the size of tensor b (512) at non-singleton dimension 3
Это мой код слоев внимания,
Q = self.fc_q(query)
K = self.fc_k(key)
V = self.fc_v(value)
#Q = [batch size, query len, hid dim]
#K = [batch size, key len, hid dim]
#V = [batch size, value len, hid dim]
# Q = Q.view(batch_size, -1, self.n_heads, self.head_dim).permute(0, 2, 1, 3)
# K = K.view(batch_size, -1, self.n_heads, self.head_dim).permute(0, 2, 1, 3)
# V = V.view(batch_size, -1, self.n_heads, self.head_dim).permute(0, 2, 1, 3)
Q = Q.view(batch_size, -1, self.n_heads, self.head_dim).view(-1, 1024)
K = K.view(batch_size, -1, self.n_heads, self.head_dim).view(-1, 1024)
V = V.view(batch_size, -1, self.n_heads, self.head_dim).view(-1, 1024)
energy = torch.matmul(Q, K.transpose(1,0)) / self.scale
Я следую нижеприведенному коду github, чтобы выполнить операцию seq to seq, seq2seq pytorch фактический тестовый код доступен по следующему адресу: код для проверки последовательности выходных данных от 1024 до 1024
2-й пример, попробованный здесь Я прокомментировал pos_embedding из-за ошибки CUDA с большим индексом (RuntimeError: ошибка времени выполнения cuda (59) а>
mask
? - person Dr. Prof. Patrick   schedule 25.08.2020