RuntimeError: "exp" not implemented for 'torch.LongTensor'
I happened to follow this tutorial too.
For me I just got the torch.arange
to generate float type tensor
from
position = torch.arange(0, max_len).unsqueeze(1)
div_term = torch.exp(torch.arange(0, d_model, 2) * -(math.log(10000.0) / d_model))
to
position = torch.arange(0., max_len).unsqueeze(1)
div_term = torch.exp(torch.arange(0., d_model, 2) * -(math.log(10000.0) / d_model))
Just a simple fix. But now it works for me. It is possible that the torch exp
and sin
previously support LongTensor
but not anymore (not very sure about it).
It seems like torch.arange
returns a LongTensor
, try torch.arange(0.0, d_model, 2)
to force torch to return a FloatTensor
instead.