pytorch runtime error(59):device-side assert triggered at XXX

跑模型的时候,遇到了这个问题,定位是在 char-embedding 中的 conv 层中,由于需要使用 pool1d, char embedding后的 size(N*seq_len, word_len, embed_size),然后需要放在 conv层中进行 conv1dpool1d, 需要在 word_len的维度上进行计算,所以需要转换一个维度,然后报错:

RuntimeError(59): device-side assert triggered at XXX

然后发现transpose之后transpose(x, 1, 2).is_contiguous()False.
结果在使用transpose(x, 1, 2).contiguous()的时候还是报同样的错误,x.cuda()或者x.cpu()都会报同样的错误。

参考RuntimeError: cuda runtime error (59), cuda 的报错提示定位可能不准。

不断调试,中途还产生了Segmentation fault (core dumped)的错误,
最后发现定位在了 word_embedding层中,发现输入中的索引超过了word vocabualry的长度。

重新建立词表,就可以了。
调了半天,原来是 词表有问题。

你可能感兴趣的:(pytorch)