当前位置:   article > 正文

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

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)
  • 1

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

print(input_tensor.min())
print(input_tensor.max())
  • 1
  • 2

一般这种错误会出现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)
  • 1

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

参考博文1
参考博文2

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号