CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
可能的情况:有地方数组越界了(下标大于原长或下标小于0)
最坑的是,报错点不一定是真错的地方。需要仔细debug
例如
embd = nn.Embedding(5002, 512).to(device)
word_ind_tensor = [[27,90,93],[19,-1,96],[84,29,9]] #注意这里有 -1 ,是问题所在
word_ind_tensor = torch.tensor(word_ind_tensor ).to(device) #类型转换
enc_outputs = embd(word_ind_tensor).to(device)
#调试时,word_ind_tensor 的内容为:Unable to get repr for
在embedding过程中,代编码的tensor中不能有小于0与大于你设置范围的数,否则会报错。