Expected tensor for argument #1 'indices' to have scalar type Long; but got torch.cuda.FloatTensor instead (while checking arguments for embedding)
我遇到这个问题时是由于我nn.Embedding()的输入并非torch.int64(torch.LongTensor),解决方法是使用torch.LongTensor()或者是dtype=int64,这是证明
torch中tensor的数据类型和python中的数据类型的对照如下:
data type | CPU type | GPU type |
---|---|---|
32-bit floating point | torch.FloatTensor | torch.cuda.FloatTensor |
64-bit floating point | torch.DoubleTensor | torch.cuda.DoubleTensor |
16-bit floating point | N/A | torch.cuda.HalfTensor |
8-bit integer (unsigned) | torch.ByteTenso |