CUDA error: device-side assert triggered on Colab

CUDA error: device-side assert triggered on Colab

我正在尝试在启用 GPU 的 Google Colab 上初始化张量。

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

t = torch.tensor([1,2], device=device)

但是我收到了这个奇怪的错误。

RuntimeError: CUDA error: device-side assert triggered 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

即使将该环境变量设置为 1 似乎也没有显示任何进一步的细节。
有人遇到过这个问题吗?

虽然我尝试了你的代码,但它没有给我错误,我可以说通常调试 CUDA 运行时错误的最佳实践:像你这样的设备端断言是将 collab 转换为 CPU并重现错误。它会给你一个更有用的回溯错误。

大多数时候 CUDA 运行时错误可能是某些索引不匹配的原因,例如您尝试在具有 15 个标签的数据集上训练具有 10 个输出节点的网络。这个 CUDA 错误的问题是一旦你得到这个错误一次,你将在你使用 torch.tensors 执行的每个操作中收到它。这会强制您重新启动笔记本。

我建议您重新启动您的笔记本,通过移动到 CPU 获得更准确的回溯,并检查您的其余代码,特别是如果您在某个地方的一组目标上训练模型。

第一次:

在使用 simpletransformers 库为多 class class 化问题微调基于 transformer 的模型时遇到相同的错误。 simpletransformers 是一个写在 transformers 库之上的库。

我将我的标签从字符串表示形式更改为数字并且它起作用了。

第二次:

在使用 transformers 库训练另一个基于 transformer 的模型时再次遇到相同的错误,用于文本 classification。 我在数据集中有 4 个标签,分别命名为 0、1、2 和 3。但是在模型的最后一层(线性层)class,我有两个神经元。 nn.Linear(*, 2)* 我不得不用 nn.Linear(*, 4) 代替,因为我总共有四个标签。

正如其他受访者指出的那样:运行 它在 CPU 上揭示了错误。我将 {1,2} 中的目标标签更改为 {0,1}。这个程序帮我解决了。

我是来自 VQGAN+Clip "ai-art" 社区的一个肮脏的随便。当我在另一个选项卡上已经有一个会话 运行 时,我收到此错误。从会话管理器中终止所有会话会清除它,让你连接到新选项卡,如果你已经摆弄了很多你不想松开的设置,这很好

也许,我是说在某些情况下

这是因为您在将logit发送到BCE Loss之前忘记添加sigmoid激活。

希望对你有帮助:P

我也遇到了这个问题,找到原因了,因为词汇维度是8000,但是我模型中的embedding维度设置为5000

Double-check GPU 数量。通常,它应该是 gpu=0 除非你有一个以上的 gpu。