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>)
'''