赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。