赞
踩
当使用torch.nn.embedding时,报错如下:
IndexError: index out of range in self
明明我放入的数据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)
这个原因是 input 里有个元素是 11, 超过 num_embeddings=10了,至于具体怎么解决找个问题,就得看你数据的实际情况了,总之不能让里面的元素的值超过 num_embeddings。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。