错误处理: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>)
'''

おすすめ

転載: blog.csdn.net/qq_40206371/article/details/121312178