当前位置:   article > 正文

nn.embedding层报错index out of range in self的另一种修复方式

index out of range in self

背景:

当使用torch.nn.embedding时,报错如下:

IndexError: index out of range in self
  • 1

明明我放入的数据shape并没有超过 torch.nn.embedding(num_embeddings, embedding_dim) 的范围,但仍然报错了

解决方法

常见的报错原因就是放入 embedding 层的数据shape超过 (num_embeddings, embedding_dim) 的范围了。

而我碰到的另一种情况是放入数组内的值也不能超过num_embeddings,比如下边这个例子就会有上述报错,我有个input tensor , shape 是 [2, 4],embedding 层 设定的是 [10, 3],[2, 4] 并没有超范围,

embedding = nn.Embedding(10, 3)

input = torch.LongTensor([[1, 2, 4, 5], [4, 3, 2, 11]])

embedding(input)
  • 1
  • 2
  • 3
  • 4
  • 5

这个原因是 input 里有个元素是 11, 超过 num_embeddings=10了,至于具体怎么解决找个问题,就得看你数据的实际情况了,总之不能让里面的元素的值超过 num_embeddings。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/522198
推荐阅读
相关标签
  

闽ICP备14008679号