赞
踩
- 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>)
- '''
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。