这个错误整了我一天时间,所以特此记录一下,如果大家也碰到希望能够避雷!!!
这个错误是在运行PyTorch代码出错,我碰到的原因是神经网络init定义时给的参数出错。
(具体是nn.Embedding(vocab_size,embed_dim)中vocab_size传错参数导致的)
【1】网上有人说这是gpu坏了,不能运行,首先可以通过:
import torch
torch.cuda.is_available()
测试,就可以排除这种问题。所一般不是cuda或者机器的问题
注:对于报错,不要心存侥幸,,,我开始就觉得是不是cuda,gpu抽风了,,,所以一定要检查自己的代码!!!
【2】如果torch能够正常运行,说明设备没有问题,那么肯定是你的代码出错了!!!!!!
由于是cuda运行错误,所以报错位置可能不准确。建议大家一行行排查。
这个错误是由于索引越界产生的。
常见出现在:
(1)类别id错误
coco数据集就有这个问题,需要重新将类别id(cat_ids)从零开始。
id_map = {v: i for i, v in enumerate(cat_ids)}
(2)nn.Embedding(vocab_size,emb)
传入的vocab_size数比你词典中个数少
(3)....
ps:遇到这种错误好好检查代码,欢迎解决问题得留下容易错误的原因。