【Pytorch】GPU内存爆炸的原因

【1】出现的问题:

RuntimeError: CUDA out of memory.

也就是常说的显存爆炸。

查了一下大致可能出现这个问题的原因:

(1)在测试阶段使用了梯度计算,方法就是测试阶段添加以下代码

with torch.no_grad():#测试阶段

(2)有其它进程占用,方法就是杀进程

taskkill /PID 进程号 -t -f

(3)就是需要释放GPU的内存,在训练和测试阶段均添加下面的代码

for batch, (X, y) in enumerate(dataloader):
    X = X.to(device)
    y = y.to(device)
    pred = model(X)
    loss = loss_fn(pred, y)

    ······(省略了一些代码)

    # 添加如下代码
    del X, y, pred, loss
    torch.cuda.empty_cache()

以上大概就是常见的三种错误,当然还有其它的错误,这里就不在列举,可以去其它地方找找看。

以上就是今天的记录,欢迎大家提出问题!

你可能感兴趣的:(Pytorch,pytorch,深度学习,人工智能,机器学习,python)