pytorch embedding层报错IndexError: index out of range in self

IndexError: index out of range in self

报这个错误是embedding层的张量输入超过了合法范围,embedding层的合法张量输入数值范围应该在[0, num_embeddings - 1]的范围内,过大过小都会报错。
因此可以在embedding层先输出查看一下最大范围:

print(self.embedding.num_embeddings)

然后查看一下输入embedding层数据张量的范围:

print(input_tensor.min())
print(input_tensor.max())

一般这种错误会出现token的映射过程中(单词到index之间的映射)。embedding层的具体参数如下:

 class torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False, _weight=None)

可以查看pytorch官方文档查看具体细节:
pytorch官方nn.embedding文档
解决方案:
TODO

参考博文1
参考博文2

你可能感兴趣的:(PyTorch,python,深度学习)