错误处理:IndexError: index out of range in self
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误处理:IndexError: index out of range in self相关的知识,希望对你有一定的参考价值。
import torch
t_embeddings = torch.nn.Embedding(2,5)
x=torch.tensor([[2,3]])
y=t_embeddings(x)
代码如上,报错如下:
IndexError: index out of range in self
报这个错误是embedding层的张量输入超过了合法范围,embedding层的合法张量输入数值范围应该在[0, num_embeddings - 1]的范围内,过大过小都会报错。
因此可以在embedding层先输出查看一下最大范围:
t_embeddings.num_embeddings
#2
比如下面这样,就没有问题:
t_embeddings = torch.nn.Embedding(5,2)
x=torch.tensor([[2,3]])
y=t_embeddings(x)
y
'''
tensor([[[ 1.7594, -0.2992],
[-0.1612, 0.9231]]], grad_fn=<EmbeddingBackward>)
'''
以上是关于错误处理:IndexError: index out of range in self的主要内容,如果未能解决你的问题,请参考以下文章
绘制 k-NN 错误:IndexError:索引 1 超出轴 1 的范围,大小为 1
Pandas 中的 grouby() 函数返回 IndexError:索引 2 超出轴 0 的范围,大小为 2
IndexError:索引 -9223372036854775808 超出尺寸 2 的维度 1 的范围