RuntimeError: CUDA error: device-side assert triggered Pytorch框架代码运行错误解决方案(亲测有效!!)

RuntimeError: CUDA error: device-side assert triggered bug详解

  • 报错原因
  • 错误定位
  • 解决方案

报错原因

在使用Pytorch框架代码进行模型训练时出现以下报错:RuntimeError: CUDA error: device-side assert triggered。出现这种报错的直接原因多种多样,没有办法一一列举,网上许多资料列举的解决方案是自己代码的报错解决,不具有通用性。很难通过查看这类资料找寻到解决方案。这个错误是CUDA报错,根本原因是代码中有索引越界导致的错误。

错误定位

torch在使用cuda计算时报错的位置的代码不一定是错误的根本位置,所以这点一定要注意(但是可以做一个参考)。但是就算定位到大致错误位置,也无法从报错信息中找出报错具体原因,更别提解决问题了。

解决方案

解决方法其实很简单,我们使用GPU跑模型时出现索引越界错误时无法通过报错信息找到错误位置及原因。但是使用CPU时却不会有这个问题。因此我们只需要把代码使用CPU运行即可,通过报错信息我们就能很轻松找到报错位置及原因,在解决完错误之后,再将模型改为GPU运行即可。

你可能感兴趣的:(Bug修改,pytorch,深度学习)