【发布时间】:2019-11-13 17:21:37
【问题描述】:
我有一个简单的脚本如下:
import torch
LOSS_WEIGHTS = [1,2,3]
LOSS_WEIGHTS = torch.Tensor(LOSS_WEIGHTS)
LOSS_WEIGHTS = LOSS_WEIGHTS.to(0)
如果我在计算机空闲时启动脚本,我经常会收到“CUDA 错误:内存不足”但 GPU 完全是空的。
在我多次重新启动脚本后,错误总是以某种方式消失。有谁知道我能做些什么来防止这个错误?我想在启动脚本之前初始化我的 cuda 设备吗?
- pytorch 1.2.0(尝试了几个版本)
- cuda 10.1(也尝试过 cuda 9)
- python 3.7
- 英伟达驱动 430
- 硬件:1 x GTX 1070
- Ubuntu 18.04
【问题讨论】:
-
听起来 cuda 进行了初始化,并且您的脚本正在尝试在完全初始化之前运行一个进程。也许使用
with来检查可用性? pytorch.org/docs/stable/notes/cuda.html -
谢谢!使用缩进代码块添加
with torch.cuda.device(0):似乎可以完全消除错误。这似乎使代码有点复杂,因为我希望代码有时在另一台 PC 上与 CPU 一起运行以进行调试。