错误处理: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 的范围

IndexError - 使用Python 3.4.3

IndexError:索引 10 超出轴 0 的范围,大小为 10

IndexError: list index out of range 现在我已经改变了文件的读取方式