Bro*_*lip 4 pytorch google-colaboratory
我在通过 Pytorch 1.9.0+cu102 训练生成网络时遇到以下错误:
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.
Run Code Online (Sandbox Code Playgroud)
使用 Google Colaboratory GPU 会话时。该段在以下两行之一上触发:
running_loss += loss.item()
Run Code Online (Sandbox Code Playgroud)
或者
target = target.to(device)
Run Code Online (Sandbox Code Playgroud)
当我第一次运行笔记本时,它会在第一行产生错误,而随后每次尝试运行该块时,它都会在第二行产生错误。第一个错误发生在训练 3 个批次后。第二个错误发生在第一批上。我可以确认该设备是 cuda0,该设备可用,并且target是 pytorch 张量。当然,我尝试接受错误的建议并运行:
!CUDA_LAUNCH_BLOCKING=1
Run Code Online (Sandbox Code Playgroud)
和
os.system('CUDA_LAUNCH_BLOCKING=1')
Run Code Online (Sandbox Code Playgroud)
但是,这两行都不会更改错误消息。根据另一篇文章,这是因为 colab 在子 shell 中运行这些行。在CPU上运行时不会出现该错误,并且我无法访问Colab上除GPU之外的GPU设备。虽然这个问题已经以多种不同的形式被问到,但没有答案对我特别有帮助,因为他们要么建议通过上述行,要么是关于与我自己的情况根本不同的情况(例如用不适当数量的类训练分类器),或者推荐一个我已经尝试过的解决方案,例如重置运行时或切换到CPU。
我希望能够深入了解以下问题:
Bro*_*lip 10
我成功地通过执行以下命令获得了有关错误的更多信息:
os.environ['CUDA_LAUNCH_BLOCKING'] = "1"
Run Code Online (Sandbox Code Playgroud)
在进口火炬之前。这使我能够获得更详细的回溯,并最终将问题诊断为不适当的损失函数。
| 归档时间: |
|
| 查看次数: |
29070 次 |
| 最近记录: |