cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

好的网友说原因是显存不够,

解决方法:改小图片尺寸,改小batch_size

1、博主百度无解后逛了逛Pytorch的社区,发现上面也有很多朋友碰到了该问题,他们提供的解决办法是:

sudo rm -rf ~/.nv
    删除掉nvidia缓存,并且有人说奏效,也有人说It doesn't work for me...

2、于是乎,博主发现了解决该问题的方法:(特别是实验室服务器单机多卡的情况)

    僧多粥少,大家一般都只用一块GPU,TensorFlow时代的做法是,

import os
os.environ['CUDA_ENABLE_DEVICES'] = '0'
    但是该方法在Pytorch代码并不适用,正确的操作方法是:

import torch
torch.cuda.set_device(0)

import os
import pynvml
import torch

pynvml.nvmlInit()


def usegpu(need_gpu_count=1):
    nouse = []
    for index in range(pynvml.nvmlDeviceGetCount()):
        # 这里的0是GPU id
        handle = pynvml.nvmlDeviceGetHandleByIndex(index)
        meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
        used = meminfo.used / meminfo.total
        if used < 0.5:
            nouse.append(index)
    if len(nouse) >= need_gpu_count:
        os.environ["CUDA_VISIBLE_DEVICES"] = ','.join(map(str, nouse[:need_gpu_count]))
        for i in nouse[:need_gpu_count]:
            torch.cuda.set_device(i)
        print("use gpu:"+','.join(map(str, nouse[:need_gpu_count])))
        return nouse[:need_gpu_count]
    elif len(nouse) > 0:
        os.environ["CUDA_VISIBLE_DEVICES"] = ','.join(map(str, nouse))
        print("use gpu:" +','.join(map(str, nouse)))
        return len(nouse)
    else:
        return 0


if __name__ == '__main__':

    gpus = usegpu(need_gpu_count=2)

    if gpus:
        print("use gpu ok")
    else:
        print("no gpu is valid")

网友的tf解决方法:

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
————————————————
版权声明:本文为CSDN博主「pkuyjxu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pkuyjxu/article/details/89402298

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值