【已解决】RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILEDYou can try to repro this exception us

问题描述

Traceback (most recent call last):
  File "Wtest.py", line 209, in <module>
    main()
  File "Wtest.py", line 167, in main
    output_clean_poisoned = test(poisoned_loader, clean_model, use_cuda)
  File "Wtest.py", line 202, in test
    outputs = model(inputs)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/parallel/data_parallel.py", line 165, in forward
    return self.module(*inputs[0], **kwargs[0])
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/media/visionx/monica/project/DVBW/CIFAR/model.py", line 93, in forward
    out = self.layer2(out)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/container.py", line 119, in forward
    input = module(input)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/media/visionx/monica/project/DVBW/CIFAR/model.py", line 35, in forward
    out = self.bn2(self.conv2(out))
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 399, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/home/visionx/anaconda3/envs/dvbw/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 395, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED
You can try to repro this exception using the following code snippet. If that doesn't trigger the error, please include your original repro script when reporting this issue.

 

解决办法

        1、改小NUM-WORKS 

        由于在这里面我们采样了100张图片,也就是可以认为numworks=100,这是比较多的,那把这个值改小就可以了

        改之前命令

python3 Wtest.py --gpu-id 1 --model 'resnet' --trigger './triggers/Trigger_cross.png' --alpha './triggers/Alpha_cross.png'  --model-path './checkpoint/infected/resnet_badnets_cross_0_010/checkpoint.pth.tar' --target-label 0 --num-img 100

        改之后

python3 Wtest.py --gpu-id 1 --model 'resnet' --trigger './triggers/Trigger_cross.png' --alpha './triggers/Alpha_cross.png'  --model-path './checkpoint/infected/resnet_badnets_cross_0_010/checkpoint.pth.tar' --target-label 0 --num-img 10

        其实就是gpu显存不够,减小点工作量就可以了 

        修改之后,再次运行,成功! 

         2、手动使用cudnn
import torch
torch.backends.cudnn.enabled = False

        网上有很多人也遇到这个问题,有人说是 CUDA 和 cudnn 的版本匹配问题,有人说需要重装 Pytorch,CUDA,cudnn。我看了官网,版本是匹配的,试着重装了也不管用,而且我按照另一个系统的版本装也不行。所以在报错代码里引入上面代码就可以了

        3、GPU,CUDA,cudnn 的关系
  • CUDA 是 NVIDIA 推出的用于自家 GPU 的并行计算框架,只能在 NVIDIA 的GPU 上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥 CUDA 的作用。

  • cuDNN 是 NVIDIA 打造的针对深度神经网络的加速库,是一个用于深层神经网络的 GPU 加速库。如果你要用 GPU 训练模型,cuDNN 不是必须的,但是一般会采用这个加速库。

完结撒花

        有能力去爱别人的前提是你要有能力爱自己

       

  • 16
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
当你在使用深度学习框架的过程中遇到 `RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED` 这个错误时,通常是由于cuDNN库执行失败引起的。 cuDNN是由NVIDIA提供的用于加速深度神经网络的库,它在GPU上进行计算,并提供了包括卷积、池化等操作的实现。当你的深度学习框架调用cuDNN库执行某个操作时,如果操作发生错误,就会报错并显示 `CUDNN_STATUS_EXECUTION_FAILED`。 解决这个问题的方法有以下几个: 1. 检查cuda版本和cudnn版本是否对应:cuDNN库和cuda库是密切关联的,要保证它们的版本兼容。可以查看cuDNN的官方文档或者深度学习框架的官方文档,确认当前使用的cuDNN版本与cuda版本是否匹配。 2. 检查显卡驱动是否正常:cuDNN库需要与显卡驱动配合使用,所以确保你的显卡驱动已正确安装并与cuDNN库兼容。 3. 检查显存是否足够:有时候由于显存不足,cuDNN无法完成操作。可以尝试减少显存的使用,例如减少批量大小或者减少网络的复杂度。 4. 检查硬件是否过热:如果你的GPU温度过高,可能会导致cuDNN执行错误。可以尝试降低GPU的工作负载、提高散热效果或者增加散热设备。 5. 检查代码或模型是否有错误:有时候cuDNN执行错误是因为代码或者模型本身存在问题。可以检查相关的代码部分,确认是否有错误,并参考深度学习框架的文档对模型进行调试。 如果以上方法都无法解决问题,可以尝试更新深度学习框架、cuDNN库或者cuda库的版本,或者咨询相关技术支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值