Pytorch训练遇到显存充足但显示显存不足,RuntimeError: cuDNN error:RuntimeError: cuDNN error:等问题

Pytorch训练遇到显存充足但显示显存不足,RuntimeError: cuDNN error:RuntimeError: cuDNN error:等问题

同一任务会出现不同error例如:

RuntimeError: GET was unable to find an engine to execute this computation
RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED 
显存不足 GPU 0 has a total capacty of 8.00 GiB of which 4.76 GiB is free.
以及pip安装第三方库时出现MemoryError

等问题的一个原因:
虚拟内存不足。没有给项目所在盘符分配虚拟内存。
解决方法:Windows搜索 查看高级系统设置->高级->设置->高级
在这里插入图片描述
分别设置C、D、E盘的虚拟内存(选择盘符->自定义大小->设置)。
网上也有说torch版本不对,降版本,但我试了,还是这个管用。

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当使用PyTorch训练神经网络时,显存不足是一个常见的问题显存主要被网络模型和中间变量占用。网络模型中的参数占用显存,而中间变量包括特征图和优化器等是消耗显存最多的部分。以下是一些节省PyTorch显存占用的小技巧: 1. 减少批量大小(batch size):减少每个批次中样本的数量可以减少显存的使用量。但是要注意,较小的批量大小可能会影响模型的训练效果。 2. 使用半精度浮点数(half-precision floating point):PyTorch支持使用半精度浮点数进行训练,可以减少显存的使用量。可以使用`torch.cuda.amp`模块来实现自动混合精度训练。 3. 及时释放不需要的显存:在训练过程中,可以使用`torch.cuda.empty_cache()`来释放不需要的显存。 4. 减少模型参数的数量:可以通过减少网络模型的大小或使用更简单的模型来减少显存的使用量。 5. 使用分布式训练:如果有多个GPU可用,可以使用分布式训练来减少每个GPU上的显存使用量。 6. 使用梯度累积(gradient accumulation):将多个小批次的梯度累积起来更新模型参数,可以减少每个小批次的显存使用量。 7. 使用PyTorch的优化器优化显存使用:PyTorch提供了一些优化器,如`torch.optim`中的`pack_padded_sequence`和`pad_packed_sequence`,可以优化处理变长序列时的显存使用。 8. 使用PyTorch的分布式数据并行(DistributedDataParallel):可以使用`torch.nn.DataParallel`或`torch.nn.parallel.DistributedDataParallel`来在多个GPU上并行训练模型,从而减少每个GPU上的显存使用量。 这些方法可以帮助您在PyTorch中节省显存占用,但请注意,根据您的具体情况,可能需要根据实际情况进行调整和尝试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值