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模型,也是随机报这两个错误,测试发现也是同样的问题引起的。