记录pytorch遇到的一些问题

Embedding层的num_embeddings设置过小

遇到了两个报错都是这个原因导致的:

报错一:

RuntimeError: CUDA error: device-side assert triggered

报错二:

RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

nn.Embedding层的 num_embeddings 参数用于指定需要被embed字典的最大容量(被embed那个数能取得的做大值,和具体能取哪些值无关),若传入的某个字典索引大于该容量,则会出现越界错误。

例如我输入的vocab字典真实最大长度为3000,而Embedding层的 num_embeddings 仅设置为2000,则可能报错

PS:后边训练另一个Seq2Seq模型,也是随机报这两个错误,测试发现也是同样的问题引起的。

Leave a Comment